log(1000, 100) 不 return 1.5

log(1000, 100) does not return 1.5

当我运行这段代码时:

$value = log(1000, 100);

echo $value;

if ($value == 1.5) {
    echo 'Equal';
} else {
    echo 'Not Equal';
}

我明白了1.5Not Equal。这很奇怪,因为 log(1000, 100) 确实 return 1.5,但它不匹配 if 语句。

为什么 PHP 这样做?

如果你 var_dump 你的 $value 你会看到结果是 float(1.4999999999999998) 并且不等于 1.5,你需要像这样使用 round:

$value = round(log(1000, 100), 1);

if ($value == 1.5) {
    echo 'Equal';
} else {
    echo 'Not Equal';
}

Here你可以看到结果。

参考: