PHP浮点计算的准确性

Dec*_*ard 4 php

$fooValue = 100.68;
$cowValue = 100.67;

$diffValue = $fooValue - $cowValue;
if($diffValue <= 0.01) {
    echo("success");
} else {
    echo("error");
}
Run Code Online (Sandbox Code Playgroud)

这将显示"错误".

我知道用Java做什么.但是我不擅长PHP,特别是用这个计算东西.

请帮帮我.我是说如何成功呢?

Emi*_*röm 6

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

在PHP中,查看BC MathGMP库.后者仅适用于整数,但它具有高性能,有时可以在不失去精度的情况下转换为整数和从整数转换.