Abs() - PHP中的绝对值函数问题

Zab*_*abs 2 php logic

任何人都可以解释为什么这个代码关于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)

Ald*_*nio 6

将浮点数传递给abs将得到一个浮点数作为结果.在这种情况下,您可能会遇到浮点表示的问题:浮点永远不会绝对精确,因此您很可能得到的数字不是0.50,而是0.500000 ... 01.您可以尝试使用php round函数将结果舍入到所需的精度(在我的情况下,我猜它是两个).