как вывести дробную часть числа прописью?

1. Михайловна 3 20.09.12 10:30 Сейчас в теме
как вывести дробную часть числа прописью?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
24. olkv 06.03.23 09:31 Сейчас в теме
Функция ЧислоСДробьюПрописью(пЧисло) Экспорт
Стр = "";
пЦелое = Цел(пЧисло);
пДробь = СтрЗаменить(Формат((пЧисло - пЦелое),"ЧРД=.; ЧН=0; ЧГ=0"),"0.","");

Стр = ЧислоПрописью(пЦелое,,",,,,,,,,0")+" целых ";

Если СтрДлина(пДробь)=1 Тогда
Стр = Стр + ЧислоПрописью(пДробь,,",,,,,,,,0")+" десятых";
ИначеЕсли СтрДлина(пДробь)=2 Тогда
Стр = Стр + ЧислоПрописью(пДробь,,",,,,,,,,0")+" сотых";
ИначеЕсли СтрДлина(пДробь)=3 Тогда
Стр = Стр + ЧислоПрописью(пДробь,,",,,,,,,,0")+" тысячных";
КонецЕсли;


Возврат Стр;
КонецФункции
25. user1863362 06.03.23 10:01 Сейчас в теме
(24) Семь лет. Семь долгих лет мы ждали твоего откровения. А ты даже код отформатировать не удосужился, позорник.
AntonH851; +1 Ответить
2. losara1983 6 20.09.12 10:30 Сейчас в теме
Уточните конфигурацию
3. Михайловна 3 20.09.12 10:32 Сейчас в теме
Мне нужно вывести в печатной форме "Инв-8а" содержание драгметаллов прописью.А они имеют 12 знаков после запятой. Подскажите как это правильно хоть должно быть по-русски?
4. Михайловна 3 20.09.12 10:33 Сейчас в теме
1С:Предприятие 8.2, Управление производственным предприятием, редакция 1.3 (1.3.27.2) (http://v8.1c.ru/enterprise/)
Copyright (С) ООО "1C", 2009-2012. Все права защищены
(http://www.1c.ru/)
5. Михайловна 3 20.09.12 10:38 Сейчас в теме
Может кто поделится знанием русского языка? Как вывести прописью такое число 16,422557738907 ?
9. Ntari 20.09.12 10:41 Сейчас в теме
(5) Михайловна, вам надо все 12 знаков вывести прописью или можно ограничиться, на пример, 5-ю?
6. Ntari 20.09.12 10:40 Сейчас в теме
Глобальный контекст (Global context)
ЧислоПрописью (NumberInWords)
Синтаксис:

ЧислоПрописью(<Число>, <ФорматнаяСтрока>, <ПараметрыПредметаИсчисления>) 
Параметры:

<Число> (обязательный)

Тип: Число. 
Число, которое необходимо преобразовать в строку прописью. 
<ФорматнаяСтрока> (необязательный)

Тип: Строка. 
Форматная строка представляет собой строковое значение, включающее параметры форматирования. Параметры форматирования перечисляются через символ ";" (точка с запятой). Если параметр не указывается, используется значение параметра по умолчанию.
Каждый параметр задается именем параметра, символом "=" (равно) и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки. 
Л (L) - Код локализации. По умолчанию используется код локализации, установленный в операционной системе. Примеры кодов локализации: ru_RU - Русский (Россия); en_US - Английский (США). 
НП (SN) - Включать/не включать название предмета исчисления (Булево), по умолчанию - Истина. 
НД (FN) - Включать/не включать название десятичных частей предмета исчисления (Булево), по умолчанию - Истина. 
ДП (FS) - Дробную часть выводить прописью/числом (Булево), по умолчанию - Ложь.
<ПараметрыПредметаИсчисления> (необязательный)

Тип: Строка. 
Представляет собой строковое значение, определяющее параметры предмета исчисления. Параметры предмета исчисления перечисляются через "," (запятая). Формат строки зависит от кода локализации.
Для русского и белорусского языков (ru_RU, be_BY) 
"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2", где:
"рубль, рубля, рублей, м" – предмет исчисления: 
рубль – единственное число именительный падеж, 
рубля – единственное число родительный падеж, 
рублей – множественное число родительный падеж, 
м – мужской род (ж – женский род, с - средний род); 
"копейка, копейки, копеек, ж" – дробная часть, аналогично предмету исчисления (может отсутствовать); 
"2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).

Возвращаемое значение:

Тип: Строка. 
Представление числа прописью. 
Описание:

Формирует представление числа прописью в соответствии с заданными форматной строкой и параметрами предмета исчисления.

Доступность: 

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. 
Примечание:

Если задан режим совместимости НеИспользовать, то по умолчанию использует код локализации, заданный для сеанса (параметром VL), аналогично форматированию числа и даты. 
Пример:

// Пример форматной строки для вывода числа прописью на русском
// языке, с выводом целой и дробной части прописью и выводом
// предмета исчисления.
ФормСтрока = "Л = ru_RU; ДП = Истина";
ПарПредмета="доллар,доллара,долларов,м,цент,цента,центов,м,2";
ПрописьЧисла = ЧислоПрописью(2341.56, ФормСтрока, ПарПредмета);

// Результат вычисления:
// "Две тысячи триста сорок один доллар пятьдесят шесть центов"
Показать
7. Михайловна 3 20.09.12 10:40 Сейчас в теме
Стандартно 1с выводит всякую ерунду - Двадцать шесть целых четыреста двадцать два миллиарда пятьсот пятьдесят семь миллионов семьсот тридцать восемь тысяч девятьсот семь трилионных)
16. ЛохНесс 150 20.09.12 11:02 Сейчас в теме
(7) почему ерунду-то? все правильно выдает.

семерка так не умела. специально писал функцию, которая так и выводила
8. Михайловна 3 20.09.12 10:41 Сейчас в теме
Ну это я конечно знаю. Результат я написала выше. Не подходит....
10. Ntari 20.09.12 10:42 Сейчас в теме
(8) Михайловна, а как надо?
13. lehis_S 20.09.12 10:57 Сейчас в теме
(8) Михайловна, Как вариант делите дробную часть и каждое число или группу чисел переводите прописью ,функцию вам привели.
11. Михайловна 3 20.09.12 10:47 Сейчас в теме
Нет, нужно обязательно все 12 знаков...
12. Ntari 20.09.12 10:51 Сейчас в теме
(11) Михайловна, напишите как вам надо чтобы выводилось..что не так в этов варианте
<quote>
Двадцать шесть целых четыреста двадцать два миллиарда пятьсот пятьдесят семь миллионов семьсот тридцать восемь тысяч девятьсот семь трилионных)
</quote>
14. Михайловна 3 20.09.12 11:00 Сейчас в теме
26,422557738907 - Двадцать шесть целых четыре двадцать две тысячных пятьсот пятьдесят семь стотысячных 738 миллионных 907 трилионных (плюс цифры должны быть словами)
18. Ntari 20.09.12 11:23 Сейчас в теме
(14) Михайловна, если вам надо так писать то формируйте строку самостоятельно. то есть берете дробную часть, переводите в строку, от нее берет левые три символа и удаляете их, три символа переводите в число и для этого числа пишете форматную строку..ну и т.д.
Хотя, ИМХО, то что вы написали это бред и так быть не должно
15. Михайловна 3 20.09.12 11:02 Сейчас в теме
А как разделить дробную часть не подскажете?
17. ЛохНесс 150 20.09.12 11:06 Сейчас в теме
26,422557738907 - Двадцать шесть целых четыре двадцать две тысячных пятьсот пятьдесят семь стотысячных 738 миллионных 907 трилионных (плюс цифры должны быть словами)


Что за издевательство над русским языком?
19. mymyka 20.09.12 11:30 Сейчас в теме
//для начала разберите число на знаки до запятой и после 

ПозицияРазделителя = Найти(Строка(ВашеЧисло),".");
ЦелаяЧасть = Лев(Строка(ВашеЧисло),ПозицияРазделителя-1);
ДробнаяЧасть = Прав(Строка(ВашеЧисло),СтрДлина(Строка(ВашеЧисло))-ПозицияРазделителя);

//затем разделите дробную часть на сотые, стотысячные и т.д.
СотаяЧасть = Лев(ДробнаяЧасть,2);
СтотысячнаяЧасть = Сред(ДробнаяЧасть,3,3);

//ну и вывод в пф
Блаблабламакетобласть.параметры.ЦелаяЧасть = ЧислоПрописью(Число(ЦелаяЧасть))+" целых";
Если СотаяЧасть <> "" Тогда
Блаблабламакетобласть.параметры.СотаяЧасть = ЧислоПрописью(Число(СотаяЧасть))+" сотых";
КонецЕсли;
Если СтотысячнаяЧасть <> "" Тогда
Блаблабламакетобласть.параметры.СотаяЧасть = ЧислоПрописью(Число(СтотысячнаяЧасть ))+" стотысячных";//что за слово вообще такое? )
КонецЕсли;

//и т.д.
Показать

ясно дело, что еще надо добавить проверки на длину числа при вычислении кусков дробной части и т.п., можно проанализировать количество знаков после запятой и выводить не стотысячные, например, а десятитысячные доли,но это уже мелочи.
20. Ntari 20.09.12 11:39 Сейчас в теме
<quote>
В русском языке десятичные дроби читаются так: сначала произносится целая часть, потом слово «целых» («целая»), потом дробная часть так, как если бы всё число состояло только из этой части, то есть числитель дроби — количественное числительное женского рода (одна, две, восемь и т. д.), а знаменатель — порядковое числительное (седьмая, сотая, двести тридцатая и т. д.).
</quote>
Daynestro07; evil_wizard; +2 Ответить
22. feel_deep 11.08.16 16:41 Сейчас в теме
Формат(мЧисло - Цел(мЧисло), "ЧЦ=2; ЧС=-2; ЧН=00; ЧВН=");
23. evil_wizard 12.08.16 10:40 Сейчас в теме
26,422557738907 - Двадцать шесть целых четыре двадцать две тысячных пятьсот пятьдесят семь стотысячных 738 миллионных 907 трилионных

После обозначения разрядности считайте число закончилось.
Вы же не будите после десятков, сотен, тысяч, миллионом и прочих произносить слово "целых".
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот