【发布时间】:2014-03-20 22:21:55
【问题描述】:
PHP 在处理小数/浮点数时出错。取以下代码:
$spotPrices['entry'] = 1.6591;
$price['o'] = 1.65908;
$currentresult = $spotPrices['entry'] - $price['o'];
echo $currentresult;
我希望这会输出0.00002(答案)。但它却输出:-1.99999999999E-5
为什么要这样做,更重要的是,我怎样才能得到正确的结果?
我在论坛上进行了一些搜索,发现浮点数适合 PHP,但没有看到似乎可以回答我的问题的解决方案或变通方法。
【问题讨论】:
-
你打错了,$spotPrice vs $spotPrices
-
如果您需要浮点数的精度,您应该查看高精度库,例如 bcmath 或不使用浮点数(转换为整数,即 value * 10000 并在显示上更改)。 php.net/manual/en/ref.bc.php
标签: php floating-point decimal floating-accuracy