Как округлить число до ближайших 10?

Как мы можем округлить число до ближайших 10 в php?

У меня 23 , какой код я бы использовал, чтобы округлить его до 30 ?

Related of "Как округлить число до ближайших 10?"

floor() будет снижаться.

ceil() будет расти.

round() пойдет по ближайшему по умолчанию.

Разделите на 10, сделайте ceil, затем умножьте на 10, чтобы уменьшить значимые цифры.

 $number = ceil($input / 10) * 10; 

Редактирование: я делал это так долго … но ответ TallGreenTree чище.

 round($number, -1); 

Это будет округлено от $ до ближайшего 10. Вы также можете передать третью переменную, чтобы изменить режим округления.

Подробнее здесь: http://php.net/manual/en/function.round.php

Я действительно искал функцию, которая могла бы округляться до ближайшей переменной, и эта страница продолжалась в моих поисках. Поэтому, когда я, наконец, в конечном итоге написал эту функцию, я подумал, что отправлю ее сюда, чтобы другие могли ее найти.

Функция будет округлена до ближайшей переменной:

 function roundToTheNearestAnything($value, $roundTo) { $mod = $value%$roundTo; return $value+($mod<($roundTo/2)?-$mod:$roundTo-$mod); } 

Этот код:

 echo roundToTheNearestAnything(1234, 10).'<br>'; echo roundToTheNearestAnything(1234, 5).'<br>'; echo roundToTheNearestAnything(1234, 15).'<br>'; echo roundToTheNearestAnything(1234, 167).'<br>'; 

Вывод:

 1230 1235 1230 1169 

div на 10, затем используйте ceil, затем mult на 10

http://php.net/manual/en/function.ceil.php

В этом вопросе много ответчиков, вероятно, все даст вам ответ, который вы ищете. Но, как отмечает @TallGreenTree, для этого есть функция.

Но проблема ответа @TallGreenTree заключается в том, что она не округляется, она округляется до ближайшего 10. Чтобы решить эту проблему, добавьте +5 к вашему номеру, чтобы округлить. Если вы хотите округлить, сделайте -5 .

Итак, в коде:

 round($num + 5, -1); 

Вы не можете использовать round mode для округления, потому что это только округляет фракции, а не целые числа.

Если вы хотите округлить до ближайших 100 , вы используете +50 .

Пытаться

round(23, -1);

Мы можем «обманывать» через раунд с помощью

 $rounded = round($roundee / 10) * 10; 

Мы также можем избежать перехода с плавающей точкой с помощью

 function roundToTen($roundee) { $r = $roundee % 10; return ($r <= 5) : $roundee - $r : $roundee + (10 - $r); } 

Изменить: я не знал (и это плохо документировано на сайте), что round теперь поддерживает «негативную» точность, поэтому вы можете более легко использовать

 $round = round($roundee, -1); 

Изменить снова: если вы всегда хотите округлить, вы можете попробовать

 function roundUpToTen($roundee) { $r = $roundee % 10; if ($r == 0) return $roundee; return $roundee + 10 - $r; } 
 $value = 23; $rounded_value = $value - ($value % 10 - 10); //$rounded_value is now 30 

Попробуй это:

 ceil($roundee / 10) * 10; 

Просто округлите до ближайших 10, а затем добавьте 10.

 round($num, -1) + 10 

Мой первый импульс состоял в том, чтобы google для «php math», и я обнаружил, что есть основная математическая функция библиотеки, называемая «round ()», которая, вероятно, является тем, что вы хотите.

Попробуйте это …… пропустите номер, который будет округлен, и он округляется до ближайшей десятой. Надеюсь, это поможет …

раунд ($ num, 1);

Для людей, которые хотят сделать это с использованием необработанного SQL, без использования php, java, python и т. Д. SET SQL_SAFE_UPDATES = 0; UPDATE db.table SET value=ceil(value/10)*10 where value not like '%0'; SET SQL_SAFE_UPDATES = 0; UPDATE db.table SET value=ceil(value/10)*10 where value not like '%0';