Как мне округлить число до ближайшей тысячи?
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);
Используйте круглую функцию, как упоминалось в других плакатах round($number, -3)
.
Вы также можете разделить свой номер на 1000, округлить до ближайшего целого числа, а затем умножить на 1000.
Кроме того, если вы хотите округлить, вы можете разделить на 1000, отрицать фактор, принуждать его к целому числу, снова отрицать его, а затем умножать на 1000.
Использовать круглый
Для целых положительных чисел:
function round($var) { return ($var + 500) / 1000 * 1000; }
от: http://us3.php.net/manual/en/function.round.php
$x = round ( $x, -3 );
Просто для вашей информации простой расчет из ответа Микеля быстрее, чем 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";
Ура!