Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Código de JavaScript - Redondear decimales

<<>>
Imágen de perfil

Redondear decimalesgráfica de visualizaciones


JavaScript

estrellaestrellaestrellaestrellaestrella(10)
Publicado el 04 de Febrero del 2002 por Administrador
55.297 visualizaciones desde el 04 de Febrero del 2002. Una media de 84 por semana
Esta función, redondea un valor con varios decimales a 2 decimales.

Versión 1
estrellaestrellaestrellaestrellaestrella(10)

Publicado el 04 de Febrero del 2002gráfica de visualizaciones de la versión: Versión 1
55.298 visualizaciones desde el 04 de Febrero del 2002. Una media de 84 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella
<!--INICIO DE LA FUNCION--> <SCRIPT LANGUAGE="javascript"> <!--www.lawebdelprogramador.com--> <!-- function redondeo2decimales(numero) { var original=parseFloat(numero); var result=Math.round(original*100)/100 ; return result; } --> </SCRIPT> <!--FIN FUNCION--> <SCRIPT LANGUAGE="javascript"> <!--www.lawebdelprogramador.com--> <!-- document.write (redondeo2decimales(100.54954785)); --> </SCRIPT>

Comentarios sobre la versión: Versión 1 (10)

06/06/2002maryluz
estrellaestrellaestrellaestrellaestrella
Gracias por la ayuda, la necesitaba como pan para el dasayuno. Excelente idea, de verdad gracias por pensar en los demás
08/03/2006Nada que ver
estrellaestrellaestrellaestrellaestrella
No tiene nada que ver la descripcion, si le pones 11.11 y lo redondeas ovbiamente le quita todos los decimales
09/03/2006juanma
estrellaestrellaestrellaestrellaestrella
Quiero felicitaros por el tutorial, ya que javaScript "falla" al utilizar operaciones con decimales.
A mi me ha resultado muy útil
Gracias
juanma
22/08/2007Rolando Canales
estrellaestrellaestrellaestrellaestrella
Como hago si quisiera redondear con 1 o con 3 decimales
06/11/2007Eleazar
estrellaestrellaestrellaestrellaestrella
el viejo truco del redondeo. Y el que dijo q 11.11 no se puede pues q vaya a probar, sale 11.11 igual.
Para tres decimales dividir y multiplicar por 1000 y asi sucesivamente
07/09/2008Gabriel
estrellaestrellaestrellaestrellaestrella
MMMM, no anda
08/07/2009JhonC
estrellaestrellaestrellaestrellaestrella
Buen aporte, rapido y sencillo
27/10/2009Victor Santis
estrellaestrellaestrellaestrellaestrella
Excelente y efectivo, asi de sencillo!!! Gracias
20/11/2009DIOGO
estrellaestrellaestrellaestrellaestrella
ésta es mejor

function roundNumber(number, decimals, decimaSeparator )
{
var returnNumber = number.toString(); //me aseguro q no sea array
if(!isNaN(parseFloat(returnNumber)))//me aseguro q sea numero
{
var isNeg = (returnNumber.indexOf("-")==0);
returnNumber = returnNumber.replace("-","").replace(",",".");

/********Normalizo punto y cero izq*****/
returnNumber = parseFloat(returnNumber).toString();
var pointIdx = returnNumber.indexOf(".");
switch(pointIdx)
{
case -1://no tiene punto
pointIdx = returnNumber.length;
if(decimals > 0)
returnNumber += ".";
break;
case 0://no tiene cero adelante
returnNumber = "0"+returnNumber;
pointIdx = 1;
break;
}
var len = returnNumber.length;
/********************/

if(len-pointIdx >= decimals)//si sobran numeros trunco, y me guardo el resto
{
var rest = returnNumber.substring(pointIdx+decimals+1);
//al resto le pongo un punto delante y lo redondeo a int
returnNumber = returnNumber.substring(0, pointIdx + ((decimals>0)?1:0) + decimals);
var floatRest = Math.round("."+rest) ;
if(floatRest > 0)
{ //le sumo el redondeo/decimales al numero original
var floatnumber= (floatRest /Math.pow(10,decimals) ) ;
floatnumber += parseFloat(returnNumber);
floatnumber += (0.001 /Math.pow(10,decimals)); //redondeo float
returnNumber = floatnumber.toString().substring(0,pointIdx + decimals+ ((decimals>0)?1:0) );
}
}
/********Normalizo punto y cero izq*****/
returnNumber = parseFloat(returnNumber).toString();
pointIdx = returnNumber.indexOf(".");
switch(pointIdx)
{
case -1://no tiene punto
pointIdx = returnNumber.length;
if(decimals > 0)
returnNumber += ".";
break;
case 0://no tiene cero adelante
returnNumber = "0"+returnNumber;
pointIdx = 1;
break;
}
len = returnNumber.length;
/*********************/

if(len-pointIdx <= decimals && decimals>0)// si faltan ceros, relleno
{
for(var i=len-pointIdx; i<=decimals; i++)
{
returnNumber += "0";
}
}
//si era negativo agrego el signo y dejo el separador
returnNumber = ((isNeg)?"-":"") + returnNumber.replace(".",decimaSeparator);
}
else
returnNumber = "NaN";
return returnNumber;
}
04/02/2011Braffy
estrellaestrellaestrellaestrellaestrella
existe una funcion que lo hace sin tanto rodeo

numero=numero.toFixed(decimales)

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios