2010-07-02 12 views
192

Quería mostrar un número de 2 decimales.JavaScript que muestra un flotante a 2 lugares decimales

Pensé que podría usar toPrecision(2) en JavaScript. Sin embargo, si el número es 0.05, obtengo 0.0500. Prefiero que siga siendo el mismo.

Véalo en JSbin.

¿Cuál es la mejor manera de hacerlo?

Puedo pensar en la codificación de algunas soluciones, pero me imagino (espero) algo así está integrado?

Respuesta

333
float_num.toFixed(2); 

Nota:toFixed() redondeará o almohadilla con ceros si es necesario para cumplir con la longitud especificada.

+19

¡Pero devuelve cadena, no flotación! – Anwar

+12

El autor de la pregunta quiere "mostrarlo", por lo que una cadena es perfecta –

+1

Y siempre puede usar parseFloat (float_num.toFixed (2)) para convertir la cadena de nuevo a float manteniendo solo dos decimales. – Hankrecords

44

Puede hacerlo con la función toFixed, pero es buggy in IE. Si desea una solución confiable, mire mi respuesta here.

+16

tecnología debe ser desarrollado en lugar de adaptarse a IE ... (por cierto en el nodo js 'float_num.toFixed (2); 'funciona bien) – fider

4

No sabe cómo llegué a esta pregunta, pero incluso si se trata de muchos años que esto se ha preguntado, me gustaría añadir un método rápido y sencillo sigo y nunca me ha defraudado:

var num = responce_from_a_function_or_something(); 
var fixed_num = parseFloat(num).toFixed(2); 
+0

¿Por qué 'parseFloat()' allí? Solo debe usarse si el número proviene de una cadena. – alex

+2

En algunas ocasiones, cuando obtengo algún valor de atributo "data-" con jquery de un elemento, si lo uso solo para Fijar, produce un error. ParseFloat lo soluciona. – panos

+1

Sí, eso es lo que quise decir antes * si proviene de una cadena *. Pero usarlo siempre es un mal consejo. – alex

0

function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); }

redondo (1.005, 2); // return 1.01

round (1.004, 2); // devuelve 1 en lugar de 1,00

la respuesta es siguiendo este enlace:. http://www.jacklmoore.com/notes/rounding-in-javascript/

Cuestiones relacionadas