我正在尝试对包含echo round(1400000);
1400000 的变量进行回声.所以有人写道:这给出了1,4E + 6而不是全数.有人知道如何完全展示它吗?
似乎圆是问题所在.我改变它,number_format()
这就完成了工作.感谢Aron和Paul的答案.
与您的问题相关,我也在PHP网站上看到了这个评论.
对于某些"特殊"浮点数,PHP从标准十进制表示法切换到指数表示法.您可以使用以下方法查看此类"特殊"值的部分列表:
for( $tmp = 0, $i = 0; $i < 100; $i++ ) { $tmp += 100000; echo round($tmp),"\n"; }
因此,如果你添加两个浮点数,最后得到一个"特殊"值,例如1.2E + 6,然后将该值未经修改地放入更新查询中以将值存储在十进制列中,例如,您可能会得到一个失败的事务,因为数据库将"1.2E + 6"视为varchar数据,而不是小数.同样,如果将值放入xml,您可能会收到XSD验证错误.
我必须说实话:这是我在20多年的编码中用任何语言看到的最奇怪的事情之一,并且解决这个问题是一个巨大的痛苦.
似乎还没有一个"真正的"解决方案,但从保罗迪克森前面提到的错误报告中的评论来看,他的解决方案似乎有效.