нашёл в инструкции смарти кому понадобится
{$number = 23.5787446}
{$number}
{$number|string_format:"%.2f"}
{$number|string_format:"%d"}
результат
23.5787446
23.58
24
например у меня так вместе с вычитанием процентов и округлением до целого числа {shop_currency_html($product.price - ($product.price / 100 * 5)|string_format:"%d")}
15 комментариев
А зачем так сложно, если есть wa_format https://developers.webasyst.ru/templates/smarty-pl...
а просто я думал что эта функция не округляет а просто скрывает значения после запятых
Хвала документации, которая несмотря на все невзгоды продолжает расти ))))
проверил |wa_format:"%d" работает :))))))))))))))))))))))
видимо документацию писали великие программисты и им было не досуг писать документацию для простого человека
вот вебасуст учитесь просто и понятно даже на русском есть http://www.smarty.net/docsv2/ru/language.modifier....
ну на самом деле в одном из методов есть ссылка на https://developers.webasyst.ru/cookbook/basics/cla...
$format
Формат возвращаемого значения. Строка с указанием формата должна начинаться с символа % и может состоять из следующих необязательных частей в указанном порядке:
Я всё это к чему...........не нужно опускаться до личностей (до компаний). Это больше говорит не о них, а о Вас.
хорошо я с вами согласен
и все таки, я читал это все и не нашел такого "%d" я думал документация написана для тех кто сам хочет немного покодить, а не для разработчиков
и вообще я видел много сообщений здесь кто спрашивал как округлить цифры, вот для них и написал
стоп я ошибся не работает так |wa_format:"%d"
Для бухгалтерии подобные округления чреваты, округление сотых а именно
2976,8207 = 2976,83 а не 2976,82
! должно всегда округлятся только в большую сторону, иначе налоговая в*** куда только вздумает! уже есть случаи.
как тогда сделать правельно
{$number = 2976.3207}
{$number}<br>
{$number|string_format:"%.2f"}<br>
{$number|string_format:"%d"}<br>
{$number|round:0}<br>
{$number|round:1}<br>
{$number|ceil} - а такое решение?
2976.3207
2976.32
2976
2976
2976.3
2977 - а такое решение?
я придумал :))))))))))))))))))))))))))))))))))))))))))))))))))))
{$number = 2635.7505}
{$number1 = $number|string_format:"%.2f"}<br>
{$number|string_format:"%.2f"}<br>
{if $number > $number1}{$number|string_format:"%.2f" + 0.01} - если после двух знаков запятой есть что-то, то прибавляем тысячную{else}{$number1} - если нет, то выводим округленную{/if}
костыль прям =)
интересно на сколько процентов, это увеличит нагрузку, в списках-каталогах товаров
не помериф не узнаеф =)