Как округлить до ближайшей тысячи?

Как мне округлить число до ближайшей тысячи?

function round($var) { // Round it } 

PHP допускает отрицательную точность для round например:

 $x = round ($x, -3); // Uses default mode of PHP_ROUND_HALF_UP. 

В то время как положительная точность указывает, где округлить после десятичной точки, отрицательные префиксы обеспечивают такую ​​же мощность до десятичной точки. Так:

 n round(1111.1111,n) == ================== 3 1111.111 2 1111.11 1 1111.1 0 1111 -1 1110 -2 1100 -3 1000 

Как общее решение, даже для языков, на которых он не встроен, вы просто делаете что-то вроде:

  • добавьте 500 .
  • разделите его на 1000 (и при необходимости обрезайте до целого).
  • умножить на 1000 .

Это, конечно, предполагает, что вы хотите поведение PHP_ROUND_HALF_UP . Некоторые считают, что банкиры округляются, PHP_ROUND_HALF_EVEN , лучше для уменьшения кумулятивных ошибок, но это тема для другого вопроса.

 rounded_number = round(original_number, -3); 

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

Используйте круглую функцию, как упоминалось в других плакатах round($number, -3) .

Вы также можете разделить свой номер на 1000, округлить до ближайшего целого числа, а затем умножить на 1000.

Кроме того, если вы хотите округлить, вы можете разделить на 1000, отрицать фактор, принуждать его к целому числу, снова отрицать его, а затем умножать на 1000.

Использовать круглый

Для целых положительных чисел:

 function round($var) { return ($var + 500) / 1000 * 1000; } 

Просто для вашей информации простой расчет из ответа Микеля быстрее, чем round () :

 Test name Repeats Result Performance calculation 10000 0.030229 sec +0.00% round 10000 0.040981 sec -35.57% 

Проверить источник здесь .

Просто небольшое изменение, может помочь округлить!

 $x = ceil(220.20 / 1000) * 1000; echo $x; 

Вот ответ, чтобы округлить до следующей тысячи:

abs(round(($a - 500), -3)) . "\n";

500-999, затем раунд до 0 и 1000-1999 раунд до 1000 и т. Д.

Если вы хотите, чтобы он начинался с 1000, просто выполните

abs(round(($a + 500), -3)) . "\n";

Ура!