2014-11-04 3 views
0

есть ли способ, которым вы можете раунд, чтобы опускаться с любым числом ниже .50 в том числе .50?PHP round() 0.50 to lower value

Например:

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) –

ответ

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

+1

Это все о [хорошей документации] (http://uk1.php.net/manual/en/function.round.php#refsect1-function.round-parameters);) –

0

Вычитание 0,5 из вашего номера и использовать ceil на результат.

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

Это извращение идиоматического способа округления без функции round. Вычитание предназначено для того, чтобы вы хотели округлить 1/2-ю точку вниз. Дополнительные проверки необходимы для негативов.