2014-11-04 27 views
0

有什么方法可以让任何低于.50的数字降低到包括.50在内?PHP round()0.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 
+6

是,使用'PHP_ROUND_HALF_DOWN'标志[轮()](http://www.php.net/manual/en/function.round.php) – 2014-11-04 14:54:12

回答

10

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

+ 1,这些新语言不是很棒!内置的每个功能。 – Bathsheba 2014-11-04 14:56:05

+1

这完全是关于[良好的文档](http://uk1.php.net/manual/en/function.round.php#refsect1-function.round-parameters);) – 2014-11-04 14:57:59

0

减去0.5从你的电话号码,并在结果上使用ceil

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

这是一种颠倒了无需round函数的四舍五入方法。减法可以满足你想要向下绕1/2路点的需求。需要额外检查底片。