Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP浮点计算的精度 $fooValue=100.68; $cowValue=100.67; $diffValue=$fooValue-$cowValue; 如果($diffValue_Php - Fatal编程技术网

PHP浮点计算的精度 $fooValue=100.68; $cowValue=100.67; $diffValue=$fooValue-$cowValue; 如果($diffValue

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

Float是不精确的数据类型(所有浮点数据类型都是),因为在转换为二进制和从二进制转换时可能会丢失精度。这就是为什么在需要高(精确)精度时不应使用浮点算术的原因


在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");
}