Foros del Web » Programando para Internet » Javascript »

Redondear número a centesimo

Estas en el tema de Redondear número a centesimo en el foro de Javascript en Foros del Web. Cómo puedo redondear un número con javascript a su centesimo más cercano. Por ejemplo que 308.6845 con alguna función me retorne 310 ??? Gracias de ...
  #1 (permalink)  
Antiguo 13/04/2009, 10:54
Avatar de Yamilskate  
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 17 años, 7 meses
Puntos: 0
Redondear número a centesimo

Cómo puedo redondear un número con javascript a su centesimo más cercano.

Por ejemplo que 308.6845 con alguna función me retorne 310

???

Gracias de antemano, salu2!

Editado: El titulo debería ser redondear a decimo entero más cercano (pero bueno también la solución se adapta a este)
  #2 (permalink)  
Antiguo 13/04/2009, 11:16
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Redondear número a centesimo

Probá con Math.round(numero) o Math.ceil(numero) o Math.floor(numero), la que te resulte más útil. Round redondea al número más cercano, floor redondea hacia abajo y ceil hacia arriba.
  #3 (permalink)  
Antiguo 13/04/2009, 11:26
Avatar de Yamilskate  
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Redondear número a centesimo

Bien, pués cómo de costumbre acabe solucionandolo yo mismo !!! lol

Aunq creo q me complique de más... pero bueno hice el siguiente algoritmo para conseguir redondear de milesimos, centesimos, decimos enteros y demás por si alguien le sirve y lo quiere adaptar en su programación.

Código PHP:
function redondear(valor,int_round)
//Función redondear decimos, centesimos y demás por Gerardo Yamil Díaz Aguirre
//---------Su uso--------------
//Primer parametro, se designa el valor a redondear
//Segundo parametro, se designa 4 en caso de querer redondear centesimos enteros, 3 para decimos enteros y así.
    
var exp_valor valor.split(".");
    var 
ultimo valor.charAt(exp_valor[0].length-int_round);
    var 
constr_conclusion "";
    
    for (var 
i=0i<=exp_valor[0].length-1i++){
        
      if (
i<exp_valor[0].length-int_round){
          if (
i!=exp_valor[0].length-int_round+1)
            
constr_conclusion += valor.charAt(i);
          if (
i==exp_valor[0].length-int_round+1)
            if (
ultimo>5)
              
constr_conclusion += parseFloat(valor.charAt(i))+parseFloat(1);
            else
              
constr_conclusion += valor.charAt(i);
      }
      
      if (
i==exp_valor[0].length-int_round){
          if ((
ultimo>5) || (ultimo<5) )
           
constr_conclusion += 0;
          if (
ultimo==5)
           
constr_conclusion += 5;
      }
      
      if (
i>exp_valor[0].length-int_round){
      
constr_conclusion += 0;
      }
      
      return 
constr_conclusion;
      

por ejemplo redondear(336700,4) debe retornar 335000

Salu2!!!

PD: Si alguien conoce alguna manera más sencilla de lograr esto porfavor posteela

Última edición por Yamilskate; 14/04/2009 a las 16:14
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 20:44.