PHP中的圆形表示科学记数法而不是全数字

时间:2009-01-29 10:38:15

标签: php floating-point integer rounding

我正在尝试对包含1400000的变量进行回显。 所以有写:echo round(1400000); 这给出了1,4E + 6而不是全数。 有人知道如何完全展示它吗?

3 个答案:

答案 0 :(得分:10)

似乎圆是问题所在。 我用number_format()更改了它,这就完成了工作。 感谢Aron和Paul的答案。

答案 1 :(得分:7)

与您的问题相关,我在PHP网站上也遇到了this comment

  

PHP从标准小数开关   符号指数表示法   某些“特殊”花车。你可以看到   这种“特殊”的部分清单   这个值:

for( $tmp = 0, $i = 0; $i < 100; $i++ ) 
{
    $tmp += 100000;
    echo round($tmp),"\n"; 
} 
  

所以,如果你添加两个浮点数,最后得到   一个“特殊”值,例如1.2E + 6,然后   将该值未经修改地放入   更新查询以将值存储在a中   十进制列,比方说,你很可能   得到一个失败的交易,因为   数据库将“1.2E + 6”视为varchar   数据,而不是小数。同样,你会的   如果,可能会收到XSD验证错误   你把值放入xml。

     

我必须诚实:这是其中之一   我见过的最奇怪的事情   超过20年的任何语言   编码,这是一个巨大的痛苦   解决。

似乎尚未有“真正的”解决方案,但从先前bug report Paul Dixon referered to的评论来看,他的解决方案似乎有效。

答案 2 :(得分:3)

可能与此bug report相关,因此您可以尝试

printf("%d", $myvar);