如下代码 $a == $b + $c,这个等式应该是成立的,
但是如果不使用 BCMath 任意精度数学函数,运行的结果就是 $b + $c > $a
在浮点数计算的精度上有余 2 进制的转换问题,大多编程语言都存在计算精度上的问题。
在实际应用中进行代码开发 的时候,应尽量避免浮点数的直接计算,浮点数计算可以使用 BCMath 相关函数解决计算精度的问题。
$a = 3105.22;
$b = 2905.46;
$c = 199.76;
$sum = $b + $c;
if($sum > $a){echo '$sum > $a';}
if($sum < $a){echo '$sum < $a';}
if($sum == $a){echo '$sum == $a';}
if(bcadd($b,$c,2) == $a ){echo '$b + $c == $a';}