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