一尘不染

PHP float计算的准确性

php

$fooValue = 100.68;
$cowValue = 100.67;

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

这将显示“错误”。

我知道用Java做些什么。但是我不太擅长PHP,尤其是在计算方面。

请帮帮我。我是说如何成功?


阅读 443

收藏
2020-05-26

共1个答案

一尘不染

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

在PHP中,检查BCMath或GMP库。后者仅适用于整数,但是它具有高性能,有时可以在不损失精度的情况下与整数进行转换。

2020-05-26