1CLenta.ru  

Вывести дробное число прописью

Программирование системы     16.05.2016 11:20     8831

Для вывода прописью дробного числа используется функция встроенного языка ЧислоПрописью(). Данная функция, принимает на вход параметр "ПараметрыПредметаИсчисления". С помощью этого параметра можно задать наименования целой и дробной части в разных падежах. Так как дробная часть может содержать разное количество знаков, то наименования целой и дробной части необходимо задавать в зависимости от этого количества.

Функция ПолучитьДробноеЧислоПрописью()


Представленная функция формирует строковое представление дробных чисел с точностью 9 знаков после запятой. На вход функция получает дробное число и возвращает его строковое представление.

Пример
ВыводимоеЧисло - 32.400567899
Результат - "Тридцать две целых четыреста миллионов пятьсот шестьдесят семь тысяч восемьсот девяносто девять миллиардных"

Функция ПолучитьДробноеЧислоПрописью(ВыводимоеЧисло)

ДробнаяЧасть = ВыводимоеЧисло - Цел(ВыводимоеЧисло);
КоличествоЗнаков = ?(ДробнаяЧасть = 0, 0, СтрДлина(ДробнаяЧасть) - 2);

Если КоличествоЗнаков = 1 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|десятая, десятых, десятых, ж, 1"
;
ИначеЕсли КоличествоЗнаков = 2 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|сотая, сотых, сотых, ж, 2"
;
ИначеЕсли КоличествоЗнаков = 3 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|тысячная, тысячных, тысячных, ж, 3"
;
ИначеЕсли КоличествоЗнаков = 4 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|десятитысячная, десятитысячных,
|десятитысячных, ж, 4"
;
ИначеЕсли КоличествоЗнаков = 5 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|стотысячная, стотысячных, стотысячных, ж, 5"
;
ИначеЕсли КоличествоЗнаков = 6 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|миллионная, миллионных, миллионных, ж, 6"
;
ИначеЕсли КоличествоЗнаков = 7 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|десятимиллионная, десятимиллионных,
|десятимиллионных, ж, 7"
;
ИначеЕсли КоличествоЗнаков = 8 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|стомиллионная, стомиллионных,
|стомиллионных, ж, 8"
;
ИначеЕсли КоличествоЗнаков = 9 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|миллиардная, миллиардных, миллиардных, ж, 9"
;
Иначе
ПараметрыПредметаИсчисления = ",,,,,,,, 0";
КонецЕсли;

Возврат ЧислоПрописью(ВыводимоеЧисло, "Л=ru_RU; ДП=Истина", ПараметрыПредметаИсчисления);

КонецФункции

Комментарии (0)