PHP浮点计算的准确性

时间:2010-10-18 09:01:50

标签: php

$fooValue = 100.68;
$cowValue = 100.67;

$diffValue = $fooValue - $cowValue;
if($diffValue <= 0.01) {
    echo("success");
} else {
    echo("error");
}

这将显示“错误”。

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

请帮帮我。我的意思是如何成功?

1 个答案:

答案 0 :(得分:6)

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

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