【发布时间】:2009-01-29 10:38:15
【问题描述】:
我正在尝试对包含 1400000 的变量进行回显。
所以写着:echo round(1400000);
这给出了 1,4E+6 而不是完整的数字。
有人知道如何充分展示它吗?
【问题讨论】:
标签: php floating-point integer rounding
我正在尝试对包含 1400000 的变量进行回显。
所以写着:echo round(1400000);
这给出了 1,4E+6 而不是完整的数字。
有人知道如何充分展示它吗?
【问题讨论】:
标签: php floating-point integer rounding
看来问题是回合。
我用number_format() 改变了它,这很好。
感谢 Aron 和 Paul 的回答。
【讨论】:
关于你的问题,我在PHP网站上也遇到了this comment。
PHP 从标准十进制切换 指数符号的符号 某些“特殊”花车。你可以看到 这种“特殊”的部分列表 值与此:
for( $tmp = 0, $i = 0; $i < 100; $i++ )
{
$tmp += 100000;
echo round($tmp),"\n";
}
所以,如果你添加两个浮点数,最终会得到 “特殊”值,例如1.2E+6,然后 将未修改的值放入 更新查询以将值存储在 十进制列,比如说,你可能会 得到一个失败的交易,因为 数据库将“1.2E+6”视为 varchar 数据,不是十进制。同样,您将 可能会收到 XSD 验证错误,如果 您将值放入 xml。
老实说:这是其中之一 我见过的最奇怪的事情 超过 20 年的任何语言 编码,这是一个巨大的痛苦 解决方法。
似乎还没有“真正的”修复,但从之前bug report Paul Dixon referered to 中的 cmets 来看,他的解决方案似乎有效。
【讨论】:
可能与这个bug report有关,所以你可以试试
printf("%d", $myvar);
【讨论】: