Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

Обрезать число до сотых без округления

#php


Каким образом обрезать число до сотых, не округляя его?

echo number_format(0.65999, 2, '.', ''); // 0.66, Округлило
echo "\n";
echo intval(0.65999 * 100) / 100; // 0.65, Не округлило
echo "\n";
echo intval(0.29 * 100) / 100; // 0.28, Округлило


Перепробовал многие варианты из интернета, везде округление было ни на одном числе,
так на другом. Есть какое-то нормальное решение или без собственной функции не обойтись?

https://ideone.com/qm7YUE
    


Ответы

Ответ 1



Используйте библиотеку BCMath и ее функцию bcdiv: echo bcdiv(0.65999, 1, 2); // 0.65 Ну, и как вариант, можно использовать preg_replace: echo preg_replace('/\.\d{2}\K.+/', '', 0.65999); // 0.65

Ответ 2



Есть функции ceil и floor: printf('%05.2f', floor(0.65999*100)/100); отсекаем дробную часть после умножения на сто и делим

Комментариев нет:

Отправить комментарий