Я использую number_format для округления плавающих чисел до двух десятичных цифр. Проблема в том, что некоторые из моих входов не имеют больше двух десятичных цифр. Итак, код:
number_format($value, 2)
Вместо мирного добавления 0, если у него недостаточно десятичных цифр, он вызывает ошибки внутри журнала Apache, и это нежелательно.
Поэтому number_format(2.1, 2)
или number_format(0, 2)
вызовет ошибку в журнале Apache.
[Чт июн. 30 17:18:04 2011] [ошибка] [клиент 127.0.0.1] Замечание PHP. Неверное числовое число, встречающееся в /home/tahoang/Desktop/Projects/weatherData/weatherData.php в строке 41
Как это исправить?
Попробуйте ввести первый параметр num_format () для float:
$format = number_format((float)0, 2);
или
$format = number_format(floatval(0), 2);
Попытайтесь заменить десятичную точку и после этого бросить плавать.
var_dump((float)number_format((float)str_replace(",", ".", "20,5"), 2, ".", "")); result: float(20.5);
Без замены:
var_dump((float)number_format(floatval("20,5"), 2, ".", "")); result: float(20); var_dump((float)number_format((float) "20,5", 2, ".", "")); result: float(20);
Я использовал это:
str_replace(array(".", ","), array(",", "."), $value)
Может быть, это поможет кому-то.