redondear - mostrar solo 3 decimales en javascript
JavaScript mostrando un flotante a 2 lugares decimales (7)
El método
toFixed()
formatea un número usando notación de punto fijo.
Y aquí está la sintaxis.
numObj.toFixed([digits])
el argumento de los dígitos es opcional y, de forma predeterminada, es 0. Y el tipo de retorno es cadena no número. Pero puedes convertirlo en número usando
numObj.toFixed([digits]) * 1
También puede lanzar excepciones como TypeError
, RangeError
Aquí está el toFixed() y la compatibilidad en el navegador.
Quería mostrar un número a 2 lugares decimales.
Pensé que podía usar toPrecision(2)
en JavaScript.
Sin embargo, si el número es 0.05
, obtengo 0.0500
. Prefiero que siga igual.
¿Cuál es la mejor manera de hacer esto?
Puedo pensar en codificar algunas soluciones, pero me imagino (espero) que algo como esto está incorporado.
He hecho esta función. Funciona bien pero devuelve cadena.
function show_float_val(val,upto = 2){
var val = parseFloat(val);
return val.toFixed(upto);
}
No sé cómo llegué a esta pregunta, pero incluso si han pasado muchos años desde que se me hizo esta pregunta, me gustaría agregar un método rápido y simple que siga y nunca me ha decepcionado:
var num = response_from_a_function_or_something();
var fixedNum = parseFloat(num).toFixed( 2 );
Podrías hacerlo con la función toFixed
, pero está defectuoso en IE . Si quieres una solución confiable, mira mi respuesta here .
Trate de toFixed
lugar de la toPrecision
.
function round(value, decimals) { return Number(Math.round(value+''e''+decimals)+''e-''+decimals); }
redondo (1.005, 2); // return 1.01
redondo (1.004, 2); // devuelve 1 en lugar de 1.00
La respuesta está siguiendo este enlace: http://www.jacklmoore.com/notes/rounding-in-javascript/
float_num.toFixed(2);
Nota: toFixed()
redondeará o rellenará con ceros si es necesario para cumplir con la longitud especificada.