php浮点数计算的精度问题示例

288次阅读
没有评论

如下代码 $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';}
正文完
有偿技术支持加微信
post-qrcode
 0
评论(没有评论)
验证码