Если вывести, например, floor((0.7 + 0.1) * 10) / 10
, то выведется 0.7 вместо 0.8. Это проблема в точности чисел с плавающей точкой (спасибо, КЭП). Из-за этого пришлось написать свою функцию, которая правильно округляет в меньшую сторону:
public static function fractionFloor($value, $precision = 0) {
$round_per_value = 10 ** $precision;
$pow_value = (string)$value * $round_per_value;
$pos = strpos($pow_value, '.') !== false ? strpos($pow_value, '.') : strpos($pow_value, ',');
$new_value = empty($pos) ? $pow_value : substr($pow_value, 0, $pos);
$new_value /= $round_per_value;
return $new_value;
}
Но функция работает только с положительными числами, как сделать, чтобы работала ещё с отрицательными (например, -0,123 до двух знаков должно равняться -0,13)?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как можно через javascript сделать GET запрос и получить от него ответ (html код некой страницы) ?
возникла необходимость вывести произвольную таксономию в json
Всем привет! Вопрос на засыпку: какие есть хуки/фильтры для указания скидки товару? Те