-2

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

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

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

输出: 0.079999999999998

预期产出: 0.08

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

由于这个问题影响了我的代码中的多个地方,并且必须检查所有内容并格式化,这很痛苦。

4

2 回答 2

-1

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

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

于 2013-10-31T11:31:00.903 回答
-1

尝试这个

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

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

echo round($sk,4);

?>
于 2013-10-31T11:31:56.197 回答