发布网友 发布时间:2022-04-07 06:33
共2个回答
懂视网 时间:2022-04-07 10:55
PHP浮点数比较方法:PHP手册里有一句话:永远不要比较两个浮点数是否相等。计算机内部处理浮点数的方式决定了浮点数不可能100%的精确,所以在处理浮点数运算时会出现精度损失问题。比如下面这段程序:<php $a = 15521.42; $b = 15480.3; $c = $a-$b; var
热心网友 时间:2022-04-07 08:03
每个浮点数没有具体准确值,都只有准确的范围。
所以比较是在比较范围。
如果你的精确度是小数点后2位。(比较不精确但为说明问题)
//原来的$a==$b0.005就是允许的误差。
可以改成
$e= 0.00001;//允许的误差值,刚刚的0.005,换成更精确0.00001误差值e要根据数据整体分布范围定,如果太精确,超过双精度表示范围,就容易出误判。
即范围不能超过甚至不能接近浮点数约15~16个有效十进制数字的最低位的数量级..