

Цифры прописью
#1
Отправлено 07 Февраль 2013 - 11:51
значения дробные 1 или 2 знака после запятой, надо что бы в поле "значение прописью" указанное значение попадало прописью
Пример
1,75
одна целая семьдесят пять сотых
#2
Отправлено 08 Февраль 2013 - 09:41
Если вывод прописью должен быть в шаблоне, то: http://clientbase.ru...?showtopic=2564
Если нужно вычисление, то по аналогии:
$line['Значение прописью'] = num2str($line['Значение'], "none", "none", 0);
#3
Отправлено 11 Февраль 2013 - 16:10
Тип поля "Минимальная сумма комиссии" = число, Число знаков всего / после запятой: 10/2
вношу значение 2.5 прописью пишет "два"??????
#4
Отправлено 11 Февраль 2013 - 16:35
list ($int, $frac) = explode(".", $line['Значение']); $line['Значение прописью'] = num2str($int, "целых", "none", 0)." ".num2str($frac, "сотых", "none", 0);
#5
Отправлено 11 Февраль 2013 - 21:09
CbCoder (11 Февраль 2013 - 16:35) писал:
list ($int, $frac) = explode(".", $line['Значение']); $line['Значение прописью'] = num2str($int, "целых", "none", 0)." ".num2str($frac, "сотых", "none", 0);
Подскажете как поправить?
#6
Отправлено 11 Февраль 2013 - 21:11
Rezo (11 Февраль 2013 - 21:09) писал:
Подскажете как поправить?
#7
Отправлено 12 Февраль 2013 - 09:13
Rezo (11 Февраль 2013 - 21:09) писал:
Подскажете как поправить?
По идее, если у вас в поле указано 2 знака после запятой, то должно выводится 2.50, и соответственно, "два целых пятьдесят сотых". Если же вы берете исходное значение не из поля, то можно принудительно привести число к нужному формату: $num = number_format($num, 2), где 2 - число знаков после запятой.
#8
Отправлено 12 Февраль 2013 - 09:22
Rezo (11 Февраль 2013 - 21:11) писал:
Можно, зайдите в файл include/propis.php и замените в строке 251 ноль на единицу. Или дождитесь выхода новой ревизии, где добавим еще один параметр в функцию num2str для установки женского рода склонения.
В итоге будет такой код:
list ($int, $frac) = explode(".", $line['Значение']); $line['Значение прописью'] = num2str($int, "целых", "none", 0, 1)." ".num2str($frac, "сотых", "none", 0, 1); // последняя единица устанавливает женское склонение числительных
#9
Отправлено 13 Февраль 2013 - 11:29
CbCoder (12 Февраль 2013 - 09:22) писал:
В итоге будет такой код:
list ($int, $frac) = explode(".", $line['Значение']); $line['Значение прописью'] = num2str($int, "целых", "none", 0, 1)." ".num2str($frac, "сотых", "none", 0, 1); // последняя единица устанавливает женское склонение числительных
#10
Отправлено 18 Февраль 2013 - 11:54
Есть 2 поля: Минимальный ПВ и Минимальный ПВ прописью
Поле Минимальный ПВ вычисляем по формуле:
$k = $line['Максимальная сумма по договору'];
$l = $line['Минимальный ПВ в %'];
$l= $l / 100;
$k = $k * $l / (1-$l);
$k = round($k, -5);
$line['Минимальный ПВ'] = $k;
Как итог например имеем цифру 1000000.
Поле Минимальный ПВ прописью вычисляю по формуле
$line['Минимальный ПВ прописью'] = num2str($line['Минимальный ПВ'], "none", "none", 0);
Итогом выдает: "девятьсот девяносто девять тысяч девятьсот девяносто девять"
Почему понять не могу???
Может кто знает? Думаю, что это из-за округления, но не пойму как влияет
#11
Отправлено 18 Февраль 2013 - 13:36
Протестировал сейчас num2str(1000000, "none", "none", 0) - выдает "один миллион", без каких-либо округлений. Скорее всего пропись тут не причем, суть в ваших вычислениях.
#14
Отправлено 18 Февраль 2013 - 15:11
- $line['Минимальный ПВ прописью'] = $line['Минимальный ПВ']; // проверяем вывод поля без прописи
- $line['Минимальный ПВ прописью'] = num2str(1000000, "none", "none", 0); // проверяем непосредственный вывод числа прописью
#15
Отправлено 18 Февраль 2013 - 15:13
#16
Отправлено 18 Февраль 2013 - 15:34
CbCoder (18 Февраль 2013 - 15:13) писал:
$line['Минимальный ПВ прописью'] = num2str(1000000, "none", "none", 0); - выдает один миллио
Создал доп поле назвал его "1", сделал следующее:
$line['Минимальный ПВ прописью'] = $line['Минимальный Затем
Затем $line[1'] = num2str($line['Минимальный ПВ прописью'], "none", "none", 0);, выдает "один миллион" - чудеса!
#17
Отправлено 18 Февраль 2013 - 15:34
Rezo (18 Февраль 2013 - 15:34) писал:
$line['Минимальный ПВ прописью'] = num2str(1000000, "none", "none", 0); - выдает один миллио
Создал доп поле назвал его "1", сделал следующее:
$line['Минимальный ПВ прописью'] = $line['Минимальный Затем
Затем $line[1'] = num2str($line['Минимальный ПВ прописью'], "none", "none", 0);, выдает "один миллион" - чудеса!
#18
Отправлено 18 Февраль 2013 - 15:41
#20
Отправлено 18 Февраль 2013 - 17:31
Количество пользователей, читающих эту тему: 8
0 пользователей, 8 гостей, 0 анонимных