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你可以看到结果。
参考:
当我运行这段代码时:
$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你可以看到结果。
参考: