Foros del Web » Programando para Internet » PHP »

Redondear número entero en miles o al mil más cercano

Estas en el tema de Redondear número entero en miles o al mil más cercano en el foro de PHP en Foros del Web. Hola. Agradezco si alguien me puede echar una mano en este problemita. Quiero redondear un número al siguiente mil (1000) más cercano. Por ejemplo: Si ...
  #1 (permalink)  
Antiguo 31/07/2012, 14:09
 
Fecha de Ingreso: julio-2005
Ubicación: Boyoliso
Mensajes: 661
Antigüedad: 19 años, 4 meses
Puntos: 0
Sonrisa Redondear número entero en miles o al mil más cercano

Hola. Agradezco si alguien me puede echar una mano en este problemita.

Quiero redondear un número al siguiente mil (1000) más cercano.

Por ejemplo:

Si x = 1200 asignarle a y = 2000
Si x = 3450 asignarle a y = 4000
Si x = 400 asignarle a y = 1000
Si x = 12999 asignarle a y = 13000

y así sucesivamente.

Tengo esta operación que me la hace en centenas:

Si por ejemplo x = 757 le asigna a y = 800:

Código PHP:
echo round(757/100.0,0)*100// imprime 800 
Ya he jugado con los valores pero nada que doy para que me lo haga en miles.

Si alguien más experimentado me puede dar una mano, le quedo agradecido
  #2 (permalink)  
Antiguo 31/07/2012, 14:30
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Respuesta: Redondear número entero en miles o al mil más cercano

y pero dividilo por 1000!! no por 100!!
  #3 (permalink)  
Antiguo 31/07/2012, 14:31
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Respuesta: Redondear número entero en miles o al mil más cercano

Código PHP:
Ver original
  1. echo round(757/1000)*1000;
  #4 (permalink)  
Antiguo 31/07/2012, 14:33
 
Fecha de Ingreso: julio-2005
Ubicación: Boyoliso
Mensajes: 661
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Redondear número entero en miles o al mil más cercano

No tampoco dá el resultado que busco dividiéndolo por 1000.

Aquí jugando con los números creo que he llegado a una solución:

Código PHP:
Ver original
  1. $x = ($x + 500)/1000*1000;
  2. $x = round ($x, -3);
  3. echo $x;

Hasta ahora, todos los que he ensayado me han servido botándome el siguiente mil. Seguiré testiando la ecuacioncita.
  #5 (permalink)  
Antiguo 31/07/2012, 14:39
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Respuesta: Redondear número entero en miles o al mil más cercano

757 / 1000 = 0.757

round(0.757) = 1

1*1000 = 1000

matemática es matemática, no puede no dar
  #6 (permalink)  
Antiguo 31/07/2012, 14:51
 
Fecha de Ingreso: julio-2005
Ubicación: Boyoliso
Mensajes: 661
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Redondear número entero en miles o al mil más cercano

Si x = 1295:

1295 / 1000 = 1.295

round(1.295) = 1

1 * 1000 = 1000

No sirve, el resultado que busco es el siguiente mil, no me sirve el anterior, en este caso si x=1295 sería 2000 el que busco, no el más carcano que es lo que hace 'round'.
  #7 (permalink)  
Antiguo 31/07/2012, 15:15
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 3 meses
Puntos: 87
Respuesta: Redondear número entero en miles o al mil más cercano

En ese caso en lugar de round() usa ceil().

Saludos.
  #8 (permalink)  
Antiguo 31/07/2012, 15:20
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Respuesta: Redondear número entero en miles o al mil más cercano

jaja claro entonces estas redondeando mal, con ceil()redondeas para arriba y con floor() para abajo

Etiquetas: entero, miles, numero, redondear
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:00.