[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Округление до меньшего числа.
Joker
Всем привет. Столкнулся с ооооочень интересным случаем, может кто знает как такое можно решить:

var_dump((floor(16993.35 * 100) / 100)); // выведет: 16993.34



Куда делась 0.01 ?!?!?! Суть задачи простая округлить в меньшую сторону до 2 знака после запятой.
sergeiss
Цитата (Joker @ 10.03.2016 - 10:46)
Куда делась 0.01 ?!?!?!

При работе с вещественными числами такое возможно smile.gif

Цитата (Joker @ 10.03.2016 - 10:46)
Суть задачи простая округлить в меньшую сторону до 2 знака после запятой.

Используй правильные инструменты http://php.net/manual/ru/function.round.php и будет тебе счастье.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
kaww
Цитата (Joker @ 10.03.2016 - 06:46)
Куда делась 0.01 ?!?!?!
Цитата (Joker @ 10.03.2016 - 06:46)
Суть задачи простая округлить в меньшую сторону

floor(round(16993.35 * 100)) / 100

Еще, как вариант, приводить к строковому типу, затем делить на 100. Но, вероятно, это будет медленнее чем round()
З.Ы. Как понял, то это только пример. Реальный код другой, иначе эти действия не имеют смысла.
Joker
Нашли решение

function roundRepay($checkFinalSum){
$checkFinalSum = (int)round($checkFinalSum*100, 2, PHP_ROUND_HALF_DOWN);
$checkFinalSum = $checkFinalSum/100;
return $checkFinalSum;
};
sergeiss
Цитата (Joker @ 10.03.2016 - 14:55)
Нашли решение

Во если честно, то не понял, что это за извращение такое "нашли".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.