Foros del Web » Programando para Internet » PHP »

Redondeo...

Estas en el tema de Redondeo... en el foro de PHP en Foros del Web. Hola amigos ando realizando un proyecto para la escuela, y me he quedado liado con una parte de mi programa en PHP.... El usuario debe ...
  #1 (permalink)  
Antiguo 22/11/2010, 13:53
Avatar de BaByRoDrI  
Fecha de Ingreso: julio-2009
Ubicación: Mexico
Mensajes: 60
Antigüedad: 14 años, 9 meses
Puntos: 1
Pregunta Redondeo...

Hola amigos ando realizando un proyecto para la escuela, y me he quedado liado con una parte de mi programa en PHP....

El usuario debe introducir un número cualquiera y yo debo poder redondearlo. Pero, no es un redondeo de números flotantes sino de números enteros, por ejemplo si alguien introduce 300 lo redondeo a 512.

Es decir, debo redondearlo al número más cercano del rango: 2^0 - 2^22, pero ojo, se puede pasar, pero NUNCA le puede faltar....

He estado leyendo en php.net pero no he encontrado algo util o que me sirva... Alguien sabe alguna característica de PHP que me permita hacer esto?

De ante mano muchas gracias!
  #2 (permalink)  
Antiguo 22/11/2010, 14:06
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Redondeo...

en realidad basta con unas cuantas condicionales if else ?
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 22/11/2010, 14:15
Avatar de WingzemonX  
Fecha de Ingreso: noviembre-2010
Mensajes: 75
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Redondeo...

¿Quieres hacer algo de numeros binarios de casualidad? Bueno, a como entiendo, quieres que se vaya al numero mayor o igual mas cercano de esa escala. Tendrias que hacer algo como:

Código PHP:
$i 0;
$n 300

for($i == 0$i <= 22$i++)
{
   if(
$n <= pow(2$i))
   {
       break;
   }
}

$n pow(2$i); 
O al menos algo asi haria yo.
  #4 (permalink)  
Antiguo 22/11/2010, 14:19
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Redondeo...

Bueno no se si entendí, pero fíjate si te sirve...

Código PHP:
Ver original
  1. <?php
  2. $numero = 300;
  3.  
  4. echo pow(2,ceil(log($numero) / log(2)) );
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #5 (permalink)  
Antiguo 22/11/2010, 14:35
Avatar de BaByRoDrI  
Fecha de Ingreso: julio-2009
Ubicación: Mexico
Mensajes: 60
Antigüedad: 14 años, 9 meses
Puntos: 1
Exclamación Respuesta: Redondeo...

Cita:
Iniciado por Hidek1 Ver Mensaje
en realidad basta con unas cuantas condicionales if else ?
Efectivamente, pero tengo 22 posibles coincidencias, te imaginas que pedazo de código sería... Lo se hacer tal como dices pero yo buscaba una función ya hecha o en su defecto una función matemática que lo permita...

Cita:
Iniciado por WingzemonX Ver Mensaje
¿Quieres hacer algo de numeros binarios de casualidad? Bueno, a como entiendo, quieres que se vaya al numero mayor o igual mas cercano de esa escala. Tendrias que hacer algo como:

Código PHP:
$i 0;
$n 300

for($i == 0$i <= 22$i++)
{
   if(
$n <= pow(2$i))
   {
       break;
   }
}

$n pow(2$i); 
O al menos algo asi haria yo.
Si llegue a pensar tu idea, pero igualmente buscaba algo más matemático que fuese más sencillo...

Cita:
Iniciado por portalmana Ver Mensaje
Bueno no se si entendí, pero fíjate si te sirve...

Código PHP:
Ver original
  1. <?php
  2. $numero = 300;
  3.  
  4. echo pow(2,ceil(log($numero) / log(2)) );
La acabo de probar y es EXCELENTE!! La verdad es que nunca hubiera podido crear esa función matemática tan buena! MIL GRACIAS!!

Y gracias a todos por su tiempo!! :D <3

Etiquetas: Ninguno
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 04:28.