PHP浮点计算的精度 $fooValue=100.68; $cowValue=100.67; $diffValue=$fooValue-$cowValue; 如果($diffValue
Float是不精确的数据类型(所有浮点数据类型都是),因为在转换为二进制和从二进制转换时可能会丢失精度。这就是为什么在需要高(精确)精度时不应使用浮点算术的原因PHP浮点计算的精度 $fooValue=100.68; $cowValue=100.67; $diffValue=$fooValue-$cowValue; 如果($diffValue,php,Php,Float是不精确的数据类型(所有浮点数据类型都是),因为在转换为二进制和从二进制转换时可能会丢失精度。这就是为什么在需要高(精确)精度时不应使用浮点算术的原因 在PHP中,请查看或使用库。后者只适用于整数,但它具有很高的性能,有时可以在不损失精度的情况下与整数进行转换。请记住,如果您不确信$fooValue始终是两者中最大的一个。然而,您的问题似乎是您的epsilon是太小,因此由于浮点数表示法而给出错误的结果。$diffValue由于浮点数表示法而等于0.010000000000005;这对
在PHP中,请查看或使用库。后者只适用于整数,但它具有很高的性能,有时可以在不损失精度的情况下与整数进行转换。请记住,如果您不确信
$fooValue
始终是两者中最大的一个。然而,您的问题似乎是您的epsilon是太小,因此由于浮点数表示法而给出错误的结果。$diffValue
由于浮点数表示法而等于0.010000000000005
;这对php来说并不特殊。如果您得到结果,请接受答案并放弃投票给他,而不是感谢您。
$fooValue = 100.68;
$cowValue = 100.67;
$diffValue = $fooValue - $cowValue;
if($diffValue <= 0.01) {
echo("success");
} else {
echo("error");
}