¿Cómo analizar flotante con dos decimales en javascript?

Resuelto user357034 asked hace 13 años • 17 respuestas

tengo el siguiente código. Me gustaría que fuera tal que si precio_resultado fuera igual a un número entero, digamos 10, entonces me gustaría agregar dos decimales. Entonces 10 serían 10.00. O si es igual a 10,6 sería 10,60. No estoy seguro de cómo hacer esto.

price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
user357034 avatar Dec 14 '10 08:12 user357034
Aceptado

Puedes usar toFixed() para hacer eso

var twoPlacedFloat = parseFloat(yourString).toFixed(2)
Mahesh Velaga avatar Dec 14 '2010 01:12 Mahesh Velaga

Si necesitas rendimiento (como en los juegos):

Math.round(number * 100) / 100

Es aproximadamente 100 veces más rápido que parseFloat(number.toFixed(2))

http://jsperf.com/parsefloat-tofixed-vs-math-round

Rob Boerman avatar Feb 14 '2015 11:02 Rob Boerman

Cuando usas toFixed, siempre devuelve el valor como una cadena. Esto a veces complica el código. Para evitar eso, puedes crear un método alternativo para Número.

Number.prototype.round = function(p) {
  p = p || 10;
  return parseFloat( this.toFixed(p) );
};

y use:

var n = 22 / 7; // 3.142857142857143
n.round(3); // 3.143

o simplemente:

(22/7).round(3); // 3.143
Vlada avatar Aug 06 '2013 21:08 Vlada

Para devolver un número, agregue otra capa de paréntesis. Lo mantiene limpio.

var twoPlacedFloat = parseFloat((10.02745).toFixed(2));
pvanallen avatar Nov 19 '2014 22:11 pvanallen