English 中文(简体)
在PHP中round函数显示科学计数法而非完整数字[重复]
原标题:
  • 时间:2009-01-29 10:38:15
  •  标签:

I m trying to do an echo of a variable containing 1400000. so there is written: echo round(1400000); this gives 1,4E+6 instead of the full number. Anybody an idea on how to display it fully?

最佳回答

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.

问题回答

关于您的问题,我也发现了PHP网站上的这条评论

PHP switches from the standard decimal notation to exponential notation for certain "special" floats. You can see a partial list of such "special" values with this:

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

So, if you add two floats, end up with a "special" value, e.g. 1.2E+6, then put that value unmodified into an update query to store the value in a decimal column, say, you will likely get a failed transaction, since the database will see "1.2E+6" as varchar data, not decimal. Likewise, you will likely get an XSD validation error if you put the value into xml.

I have to be honest: this is one of the strangest things I have seen in any language in over 20 years of coding, and it is a colossal pain to work around.

从Paul Dixon之前提到的错误报告的评论中来看,似乎还没有“真正”的修复,但他的解决方案似乎有效。

可能与此错误报告有关,所以您可以尝试。

printf("%d", $myvar);




相关问题
热门标签