image
Inicio » Foros » JavaScript

JavaScript

Ayuda para quitar decimales

Volver al foro | Responder | Añadir nuevo tema


De: Wendy
Fecha: 15/07/2005
Mensaje:

Hola!

Quiero dejar únicamente 2 decimales al resultado que me devuelven mis funciones de javascript. Alguien sabe cómo puedo hacerle?

Ejemplo: 99.0187651 quiero que quede 99.02

 

Mil Gracias de antemano!




Quizás le interese
De: ZeroKilled
Util para: 6 personas

Fecha: 15/07/2005
Mensaje:

En un script que yo use para culcular precios, lo solucione de la siguiente manera:

Primero, hay que manejar el valor como valor de tipo texto. Ejemplo, este es mi valor el cual esta definido como tipo numero:

num = 101.919001;

Lo cambiamos a tipo texto:

num = String(num);
// NOTA: Si el valor lo extraes desde un campo tipo texto,
// no es necesario procesarlo por este paso puesto que
// ya es un valor tipo texto.

Dentro de la cadena de texto de la variable num hacemos una busqueda de cual es el indice de posicion del punto decimal (.) y lo guardamos en una variable el cual le sumamos tres (3):

ind = num.indexOf('.') + 3;
// Al principio la logica nos dice que deberia de ser dos (2);
// pero me sucedio que no funciona como se pensaba,;
// tiene que ser tres (3). Compruebalo!;

Puesto que quieres redondear el numero a los centenares (.00), tenemos que comprobar cual es el valor que contiene los millares (.000):

add = num.charAt(num.indexOf('.') + 3);

Ahora extraemos la cadena con dos valores luego del punto decimal:

num = num.substring(0, ind);
// 0 porque se comienza desde el indice 0 de la cadena;

Luego hay que comprobar si el valor de los millares es mayor o igual que cinco (5) o si se es equivalente a negativo uno (-1):

if(add > 4){
num = Number(num) + .01;
}
else if(add == '-1'){
num = Number(num);
}
// Es necesario convertir la variable a tipo numero para;
//  poder hacer la suma correctamente y futuramente en;
// caso de usar nuevamente el valor;

Finalmente contenemos la variable num con en el formato deseado.





De: ZeroKilled
Util para: 1 personas

Fecha: 15/07/2005
Mensaje:

Perdona, pero hay un pequeño error de orden en el script. La seccion de comprobación debe de ir de la siguiente manera:

if(add == '-1'){
num = Number(num);
}
else if(add > 4){
num = Number(num) + .01;
}

Debe de comprobarse primero si el valor es equivalente a negativo uno (-1) puesto que que si se comprueba primero si es mayor que cuatro (4), obviamente negativo uno es mayor que cuatro. Por tanto se introduceria una suma erroneamente.





De: Wendy
Util para: 0 personas

Fecha: 15/07/2005
Mensaje:

Voy a probarlo, gracias! :)






De: eTaTuS
Util para: 0 personas

Fecha: 06/07/2006
Mensaje:

Mucho más sencillo:

para 2 decimales por ejemplo:

valor2decimales=Math.round(valor*100*100) / 100;

para 3 decimales:

valor3decimales=Math.round(valor*100*100*100) / 1000;




De: eTaTuS
Util para: 0 personas

Fecha: 06/07/2006
Mensaje:

Una corrección sobre lo anterior...

para 2 decimales por ejemplo:

<b>
valor2decimales=Math.round(valor*100*100) / 100*100;
</b>

para 3 decimales:

<b>
valor3decimales=Math.round(valor*100*100*100) / 100*100*100;
</b>




De: eTaTuS
Util para: 0 personas

Fecha: 06/07/2006
Mensaje:

Más correcciones (tengo el día tonto...)

para 2 decimales:

[b]
valor2decimales=Math.round(valor*100) / 100;
[/b]


para 3 decimales:

[b]
valor3decimales=Math.round(valor*1000) / 1000;
[/b]

para N decimales:

[b]
valor3decimales=Math.round(valor*N*10) / (N*10);
[/b]




De: Artu
Util para: 3 personas

Fecha: 29/05/2007
Mensaje:

Muchísimo más simple que eso numeroformateado = numero.toFixed(2); Saludos.



De: chileno
Util para: 0 personas

Fecha: 10/09/2007
Mensaje:

muchas gracias artur, era muy fácil xD



De: valedor
Util para: 0 personas

Fecha: 06/01/2009
Mensaje:

gracias artur



De: Arfaxadus
Util para: 0 personas

Fecha: 30/04/2009
Mensaje:

Tanto que se complican la vida estos programadores para dejar dos decimales de un valor. :) Basta un línea de código: Saludos.



De: Cesar
Util para: 0 personas

Fecha: 09/02/2011
Mensaje:

Gracias Artur :)



De: JUAN
Util para: 0 personas

Fecha: 26/10/2015
Mensaje:

Mas facil, multiplica la variable por .01 y analiza
el resultado, ejemplo var1 = 12.55, var1 = var1*.01
y ahi decides



De: OO5uWbY0r
Util para: 0 personas

Fecha: 07/01/2016
Mensaje:

Got it! Thanks a lot again for hepnlig me out!



Volver al foro | Responder | Añadir nuevo tema

Quizás le interese:

WebEstilo.com no se hace responsable de las opiniones que los usuarios puedan verter en cualquiera de los foros existentes.

Si te solucionó el problema pulsa en G+1


Gracias!






Comparte



Última modificación:31 de Agosto de 2017. Spain - Espa�a.
© 1998-2004 por . Todos los derechos reservados.