PHP将()0.50舍入为更低的值


PHP round() 0.50 to lower value

有什么方法可以四舍五入到任何低于.50(包括.50)的数字的下限吗?

例如:

round(1.49) => 1
round(1.51) => 2
round(1.50) => 2

有什么方法可以让它变成这样吗:

round(1.49) => 1
round(1.51) => 2
round(1.50) => 1

使用PHP_ROUND_HALF_DOWN标志

echo round(1.49, 0, PHP_ROUND_HALF_DOWN);
echo PHP_EOL;
echo round(1.50, 0, PHP_ROUND_HALF_DOWN);
echo PHP_EOL;
echo round(1.51, 0, PHP_ROUND_HALF_DOWN);

从数字中减去0.5,并对结果使用ceil

例如ceil(1.51 - 0.5) = 2ceil(1.50 - 0.5) = 1

这是对在没有round函数的情况下进行舍入的惯用方法的曲解。减法可以满足您向下取整1/2路点的需要。底片需要额外检查。