Для вывода прописью дробного числа используется функция встроенного языка ЧислоПрописью(). Данная функция, принимает на вход параметр "ПараметрыПредметаИсчисления". С помощью этого параметра можно задать наименования целой и дробной части в разных падежах. Так как дробная часть может содержать разное количество знаков, то наименования целой и дробной части необходимо задавать в зависимости от этого количества.
Функция ПолучитьДробноеЧислоПрописью() Представленная функция формирует строковое представление дробных чисел с точностью 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; ДП=Истина", ПараметрыПредметаИсчисления); КонецФункции
|