我正在尝试对包含 1400000 的变量进行回显。所以写着:echo round(1400000);
这给出了 1,4E+6 而不是完整的数字。有人知道如何充分展示它吗?
kenneth van rumste
问问题
5915 次
3 回答
10
It seems that round was the problem.
I changed it with number_format()
and this does the job just fine.
Thanks Aron and Paul for the answers.
于 2009-01-29T10:58:44.620 回答
7
与您的问题相关,我也在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 多年的编码中看到的任何语言中最奇怪的事情之一,解决它是一个巨大的痛苦。
似乎还没有“真正的”修复,但从Paul Dixon之前提到的错误报告中的评论来看,他的解决方案似乎有效。
于 2009-01-29T10:52:41.747 回答
3
可能与此错误报告有关,因此您可以尝试
printf("%d", $myvar);
于 2009-01-29T10:44:26.960 回答