使用浮点数时的值无效

时间:2013-10-31 11:27:16

标签: php floating-point floating-accuracy

以下操作给出了错误的结果。

$First      = '45.4000';
$Second     = '4.6800000000';
$Third      = '50.00';

echo ( $First + $Second ) - $Third;

输出:0.079999999999998

预期输出: 0.08

我正在研究如何在不使用number_format / sprintf等的情况下获得正确的结果。

由于此问题影响了我的代码中的多个位置。必须重温一切格式化它是一种痛苦。

2 个答案:

答案 0 :(得分:-1)

作为“快速修复”,更改php.ini文件中的precision设置。 Documentation

默认情况下,它是14,这比你几乎所有时间都要多(如果你需要那么多的精度,你将使用专用的数学库)。将其更改为4,结果将四舍五入到该长度 - 请注意,如果需要,您仍可以根据具体情况使用number_format覆盖此结果。

答案 1 :(得分:-1)

试试这个     

$First      = '45.4000';
$Second     = '4.6800000000';
$Third      = '50.00';

$sk = ( $First + $Second ) - $Third;

echo round($sk,4);

?>