PHP非常小的小数会导致错误

时间:2014-03-20 22:21:56

标签: php floating-point decimal floating-accuracy

当使用小小数/浮点数时,PHP对我错误。请使用以下代码:

$spotPrices['entry'] = 1.6591;
$price['o'] = 1.65908;

$currentresult = $spotPrices['entry'] - $price['o'];

echo $currentresult;

我希望这会输出0.00002(答案)。但它输出:-1.99999999999E-5

为什么要这样做,更重要的是,我如何才能得到正确的结果?


我已经在论坛上进行了一些搜索,看到浮点数给PHP带来了适合但是没有看到解决方案或解决方法似乎回答了我的问题。

2 个答案:

答案 0 :(得分:3)

我的计算器说结果应该是0.00002

使用number_format:

$currentresult = number_format($spotPrices['entry'] - $price['o'], 8);

答案 1 :(得分:1)

而不是0.00002,得到1.9999999999909E-5,即0.000019999999999909。这是由于浮点精度。精度取决于平台。您可以在此处阅读:http://www.php.net/manual/en/language.types.float.php