2011-05-23 49 views

Respuesta

195

Sí - parseFloat.

parseFloat(document.getElementById(amtid4).innerHTML); 

Para formatear números, utilice toFixed:

var num = parseFloat(document.getElementById(amtid4).innerHTML).toFixed(2); 

num es ahora una cadena con el número formateado con dos cifras decimales.

+1

podemos hacer que esa variable con 2 puntos decimales como 120.50? ahora mismo estoy recibiendo 120.5. – Varada

+1

@Varada Ver edición. – lonesomeday

+11

Para citar @PhilipWhitehouse "Por favor, para cualquiera que lea esto en el futuro, no use float para almacenar moneda. Perderá precisión y datos. Debe almacenarlo como un número entero de centavos (o centavos, etc.) y luego convertir antes de la salida ". Fuente: http://stackoverflow.com/questions/149055/how-can-i-format-numbers-as-money-in-javascript –

55

También puede utilizar el Number constructor/función (sin necesidad de una raíz y utilizable tanto para los números enteros y flotadores):

Number('09'); /=> 9 
Number('09.0987'); /=> 9.0987 
+3

+1, 'Number' - o' + '- es lo que yo haría . –

8

esto funciona:

var num = parseFloat(document.getElementById(amtid4).innerHTML, 10).toFixed(2); 
1

Una forma parte corta fácil sería usar + x Mantiene el signo intacto, así como los números decimales. La otra alternativa es usar parseFloat (x). Diferencia entre parseFloat (x) y + x es para una cadena en blanco + x devuelve 0 donde como parseFloat (x) devuelve NaN.

0

Es bastante arriesgado dejar que el javascript funciones para comparar y jugar con los números. En javascript (0.1 + 0.2 == 0.3) se devolverá falso debido a errores de redondeo. Use la biblioteca math.js.

0

hice un poco de función auxiliar para hacer esto y coger todos los datos malformados

function convertToPounds(str) { 
    var n = Number.parseFloat(str); 
    if(!str || isNaN(n) || n < 0) return 0; 
    return n.toFixed(2); 
} 

demo es here

Cuestiones relacionadas