У меня есть этот кусок кода, разработанный в PHP5.5 без проблем. Однако, когда тот же код перемещается на другой сервер в PHP5.3, number_format () не возвращает ожидаемое значение, а возвращает «nan»
Это мой код:
number_format($num, 2, ".", ",");
переменная $num
извлекается из базы данных с типом данных decimal(25,8)
Что меня смущает, так это то, что это работает для некоторого числа, но не для некоторых других. Пример:
$num = 1800.00000000
number_format($num, 2, ".", ",") ==> returns "nan"
$num = 1000.00000000
number_format($num, 2, ".", ",") ==> returns "1,000.00"
Это распространенная ошибка в PHP 5.3? Есть ли какое-то решение для этого?
У меня есть Google, но пока нет решения, которое бы подходило для моего случая. Тип по float или floatval () также не работает.
ОБНОВИТЬ
Проблема случается из-за DateTime::diff()
который запускается как раз перед number_format
линия.
Каким-то образом эта функция вызывает проблемы в PHP5.3, но не в PHP5.5
Как только функция была изменена с помощью strtotime () для вычисления разницы между двумя датами, все работает нормально.
Хотя, честно говоря, я до сих пор не знаю, почему проблема возникает в первую очередь. Если кто-то знает об этом, пожалуйста, поделитесь со мной тоже. Спасибо!
Задача ещё не решена.
Других решений пока нет …