当我运行此代码时:
$value = log(1000, 100);
echo $value;
if ($value == 1.5) {
echo 'Equal';
} else {
echo 'Not Equal';
}
我看到1.5Not Equal
。这很奇怪,因为log(1000, 100)
确实返回1.5
,但它与if语句不匹配。
PHP为什么要这样做?
如果您var_dump
您的$value
,您将看到结果是float(1.4999999999999998)
,而这不等于1.5
,您需要使用类似于:的舍入
$value = round(log(1000, 100), 1);
if ($value == 1.5) {
echo 'Equal';
} else {
echo 'Not Equal';
}
在这里您可以看到结果。
参考:
- 圆形
- 请参阅浮点精度