PHP round()0.50降低值

时间:2014-11-04 14:50:45

标签: php numbers rounding

有什么方法可以用低于.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

2 个答案:

答案 0 :(得分:11)

使用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);

答案 1 :(得分:0)

从您的号码中减去0.5,并在结果上使用ceil

E.g。 ceil(1.51 - 0.5) = 2ceil(1.50 - 0.5) = 1

这是在没有round函数的情况下进行舍入的惯用方法的变态。减法适合您想要向下绕1/2路点。否定所需的额外检查。