php - redondeo - ¿Cómo redondear a las mil más cercanas?
redondeo de numeros ejemplos (9)
¿Cómo redondeo un número a su millar más cercano?
function round($var) {
// Round it
}
Aquí hay una respuesta para redondear a los siguientes mil:
abs(round(($a - 500), -3)) . "/n";
500-999 luego redondea a 0 y 1000-1999 redondea a 1000, etc.
Si quieres que empiece en 1000, entonces hazlo
abs(round(($a + 500), -3)) . "/n";
¡Aclamaciones!
PHP permite una precisión negativa para round
como con:
$x = round ($x, -3); // Uses default mode of PHP_ROUND_HALF_UP.
Mientras que una precisión positiva indica dónde redondear después del punto decimal, las precisiones negativas proporcionan la misma potencia antes del punto decimal. Asi que:
n round(1111.1111,n)
== ==================
3 1111.111
2 1111.11
1 1111.1
0 1111
-1 1110
-2 1100
-3 1000
Como solución general, incluso para los idiomas que no lo tienen incorporado, simplemente hace algo como:
- añadir
500
. - divídalo por
1000
(y trunque a entero si es necesario). - multiplicar por
1000
Esto es, por supuesto, suponiendo que desea el comportamiento PHP_ROUND_HALF_UP
. Algunos piensan que el redondeo de los banqueros, PHP_ROUND_HALF_EVEN
, es mejor para reducir los errores acumulativos, pero ese es un tema para una pregunta diferente.
Para enteros positivos:
function round($var) {
return ($var + 500) / 1000 * 1000;
}
Sólo un pequeño cambio, puede ayudar a redondear!
$x = ceil(220.20 / 1000) * 1000;
echo $x;
Solo para su información, el cálculo simple de la respuesta de Mikel es más rápido que round() :
Test name Repeats Result Performance
calculation 10000 0.030229 sec +0.00%
round 10000 0.040981 sec -35.57%
Fuente de prueba here .
Use la http://php.net/manual/en/function.round.php como se menciona en otros carteles de round($number, -3)
.
También puede dividir su número por 1,000, redondear al número entero más cercano y luego multiplicar por 1,000.
Además, si desea redondear, puede dividir por 1,000, negar el cociente, forzarlo a un entero, negarlo nuevamente y luego multiplicarlo por 1,000.
de: http://us3.php.net/manual/en/function.round.php
$x = round ( $x, -3 );
rounded_number = round(original_number, -3);