PHP Round()无法正常工作

Pab*_*ara 9 php math

我需要帮助.我这样做:

round($myvar,2);
Run Code Online (Sandbox Code Playgroud)

这是我得到的数字:9.779999999999999€

使用其他变量它可以正常工作,任何想法如何解决这个问题?

Pab*_*ara 12

我这样做了:

<?php echo round(9.7752,2);?>
Run Code Online (Sandbox Code Playgroud)

我得到了:9.779999999999999

我相信它是php.ini中的东西,因为@MarkBaker说..但是,我修复了它:

<?php echo number_format($myvar,2);
Run Code Online (Sandbox Code Playgroud)

我得到了我想要的东西.谢谢大家的帮助!

  • 请注意,number_format() 将为大数字添加逗号。这可能是有用的输出,也可能不是有用的输出,具体取决于您的情况。 (4认同)
  • 对我来说,这似乎很正常[浮点不准确](http://stackoverflow.com/questions/3726721/php-math- precision)... (2认同)

小智 10

只需在 round 函数之前加入空字符串即可

$val = "" . round(9.597466245, 2);
Run Code Online (Sandbox Code Playgroud)


小智 6

我遇到的问题是 round(18.203,2) = 18.2 ,然后 json_encode(...) = 18.199999999 。所以我发现解决方案是 json_encode(strval(round(18.203,2))) = 18.2 它有效