我在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中的常见错误吗?它有什么解决方案吗?
我有谷歌,但到目前为止还没有适用于我的案例的解决方案。 float或floatval()的类型转换也无效。
更新
由于在DateTime::diff()
行之前运行的number_format
,会出现此问题。
不知何故,这个函数在PHP5.3中引起了问题,但在PHP5.5中没有引起问题
通过使用strtotime()来计算2个日期之间的差异来改变函数后,一切正常。
虽然,说实话,我仍然不知道为什么问题首先发生。如果有人知道这一点,请与我分享。谢谢!