以下操作给出了错误的结果。
$First = '45.4000';
$Second = '4.6800000000';
$Third = '50.00';
echo ( $First + $Second ) - $Third;
输出:0.079999999999998
预期输出: 0.08
我正在研究如何在不使用number_format / sprintf等的情况下获得正确的结果。
由于此问题影响了我的代码中的多个位置。必须重温一切格式化它是一种痛苦。
答案 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);
?>