Подводные камни PHP

1 23
Andreyka
На сайте с 19.02.2005
Offline
822
#21
Dimanych:
Мне такая точность не нужна, мне нужно было для денежной суммы выполнить floor(), на случай если более 2 знаков после запятой, например
10.209 => 10.20
но не как не укладывался в голове такой результат
10.20 => 10.19

особенно когда это происходило очень редко :)

Вот по этому умные люди деньги хранят в копейках, в целочисленных переменных.

Не стоит плодить сущности без необходимости
_vb_
На сайте с 25.07.2009
Offline
104
#22
Dimanych:
мне нужно было для денежной суммы

Для банковских операций есть специальные функции, которые равномерно раскидывают невязку копеек/центов в обе стороны.

Кстати, слышал байку (давно) про ушлого программера в одном крупном бурж.банке. Он подменил эту функцию на свою собственную, округлявшую в нужную сторону и перечислявшую остаток от округления на нужный счет. Балансы в банке сходились, а сумма на том счету очень бодро росла ☝

Саратовская фракция серча (). Давайте посчитаемся.
D
На сайте с 05.06.2007
Offline
155
#23

Andreyka, знаю, неудобно, да и проще уж костыль округляющий на 3 цифры после запятой

$x=10.20;

echo floor(round($x*1000)/10)/100;

_vb_, было такое, не хочется испытать на себе)

Написал не мало шедевров ;)
Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#24
Dimanych:
Andreyka, знаю, неудобно, да и проще уж костыль округляющий на 3 цифры после запятой
$x=10.20;
echo floor(round($x*1000)/10)/100;

_vb_, было такое, не хочется испытать на себе)

Это плохо и неправильно. За такое отрывают руки и не только их.

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
Andreyka
На сайте с 19.02.2005
Offline
822
#25
Dimanych:
Andreyka, знаю, неудобно, да и проще уж костыль округляющий на 3 цифры после запятой
$x=10.20;
echo floor(round($x*1000)/10)/100;

_vb_, было такое, не хочется испытать на себе)

Кодеры на php такие кодеры

D
На сайте с 05.06.2007
Offline
155
#26
Boris A Dolgov:
Это плохо и неправильно. За такое отрывают руки и не только их.

Кто их отрывает. Вы что-то не договариваете :)

1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий