任何人都可以解释为什么这个代码关于abs()(绝对值) - 在我的代码中它将显示'GREATER' - 虽然0.50永远不会超过0.5,我是否错过了这里的abs函数?
$logic = abs(1.83333333333 - 2.33333333333); // 0.50
$limit = 0.50;
if ($logic > $limit) {
echo 'IS GREATER';
} else {
echo 'IS NOT GREATER';
}
Run Code Online (Sandbox Code Playgroud)
将浮点数传递给abs将得到一个浮点数作为结果.在这种情况下,您可能会遇到浮点表示的问题:浮点永远不会绝对精确,因此您很可能得到的数字不是0.50,而是0.500000 ... 01.您可以尝试使用php round函数将结果舍入到所需的精度(在我的情况下,我猜它是两个).