javascript - redondeo - Redondeando números a 2 dígitos después de la coma
redondeo de numeros enteros (7)
Aunque aquí tenemos muchas respuestas con muchas sugerencias útiles, cada una de ellas sigue sin dar algunos pasos.
Así que aquí hay una solución completa envuelta en una función pequeña:
function roundToTwoDigitsAfterComma(floatNumber) {
return parseFloat((Math.round(floatNumber * 100) / 100).toFixed(2));
}
En caso de que le interese cómo funciona esto:
- Múltiple con 100 y luego hacer ronda para mantener la precisión de 2 dígitos después de la coma
- Divida de nuevo en 100 y use hasta
toFixed(2)
para mantener 2 dígitos después de la coma y tire otra parte inútil - Convierta de nuevo a float utilizando la función
parseFloat()
comotoFixed(2)
devuelve string en su lugar
Nota: si conserva los últimos 2 dígitos después de la coma debido a que trabaja con valores monetarios, y al hacer cálculos financieros, tenga en cuenta que no es una buena idea y que, en su lugar, sería mejor usar valores enteros.
¿No tengo ni idea de cómo hacer esto? Estoy agregando números de coma, el resultado es, por supuesto, siempre un número con demasiados dígitos después de la coma. ¿nadie?
Esto funcionó para mí:
var new_number = float.toFixed(2);
Ejemplo:
var my_float = 0.6666
my_float.toFixed(3) # => 0.667
Esto no es realmente amigable con la CPU, pero:
Math.round(number*100)/100
funciona como se esperaba
Las respuestas anteriores olvidaron escribir el resultado como un Número nuevamente. Hay varias formas de hacerlo, dependiendo de tus gustos.
+my_float.toFixed(2)
Number(my_float.toFixed(2))
parseFloat(my_float.toFixed(2))
usa el siguiente código
alert(+(Math.round(number + "e+2") + "e-2"));
EDICION 2 :
Utilice el método Number
toFixed
como este:
var num = Number(0.005) // The Number() only visualizes the type and is not needed
var roundedString = num.toFixed(2);
var rounded = Number(roudedString); // toFixed() returns a string (often suitable for printing already)
Redondea 42.0054321 a 42.01
Redondea 0.005 a 0.01
Redondea -0.005 a -0.01 (Entonces, el valor absoluto aumenta al redondear en el borde .5)
-
toFixed()
- método convierte un número en una cadena, manteniendo un número específico de decimales. En realidad no redondea un número, trunca el número. -
Math.round(n)
: redondea un número al número entero más cercano. Así convirtiendo:
0.5 -> 1; 0.05 -> 0
así que si quieres redondear, di el número 0.55555, solo al segundo lugar decimal; usted puede hacer lo siguiente (este es un concepto paso a paso):
-
0.55555 * 100
= 55.555 -
Math.Round(55.555)
-> 56.000 -
56.000 / 100
= 0.56000 -
(0.56000).toFixed(2)
-> 0.56
y este es el código:
(Math.round(number * 100)/100).toFixed(2);