Как округлить round в меньшую сторону c одним знаком после запятой?

Доброго времени суток друзья. У меня есть значение 758.66318000.
Я использую функцию round($var,1) хочу округлить значение до 758.6.
Округление производится по математическим правилам. Следовательно, если округляемые разряды меньше 5, округление будет выполнено в меньшую сторону. Если же равно или больше 5, в большую сторону.

Но мне необходимо всегда округлять в меньшую сторону с одним знаком после запятой. Подскажите, как это сделать ?
  • Вопрос задан
  • 274 просмотра
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Вопрос оказался не так прост, как кажется. Действительно, в РНР нет функции, которая округляет дробные числа в меньшую сторону.
Так что остаётся только решение, предложенное Ankhena в комментариях:

floor(758.66318000*10)/10;

Так же, универсальное решение приведено в пользовательских комментариях к функции round() (я, правда, позволил себе его немного подредактировать):

function round_down($number, int $precision = 2)
{
    if  ($precision === 0) {
        return floor($number);
    }
    $fig = pow(10, $precision);
    return round(floor($number * $fig) / $fig, $precision);
}

(round() в конце на всякий случай, если вдруг деление вернет не 8, а 7.9999999, как это бывает с дробными числами)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Nevea
функция floor() округляет в меньшую сторону
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы