two sirve que parse para one number float es6 decimals decimales convert javascript parsefloat

sirve - Javascript Parse Float está ignorando los decimales después de mi coma



parsefloat 2 (7)

¿Por qué no usar globalizar? Este es solo uno de los problemas a los que puede acceder cuando no usa el idioma inglés:

Globalize.parseFloat(''0,04''); // 0.04

Algunos enlaces en stackoverflow para ver:

Aquí hay un escenario simple. Quiero mostrar la resta de dos valores que se muestran en mi sitio:

//Value on my websites HTML is: "75,00" var fullcost = parseFloat($("#fullcost").text()); //Value on my websites HTML is: "0,03" var auctioncost = parseFloat($("#auctioncost").text()); alert(fullcost); //Outputs: 75 alert(auctioncost); //Ouputs: 0

¿Alguien puede decirme lo que estoy haciendo mal?


Como señaló @JaredPar en su respuesta, use parseFloat con replace

var fullcost = parseFloat($("#fullcost").text().replace('','', ''.''));

Tan solo reemplazar la comma con un dot lo arreglará, a menos que sea un número superior a miles como 1.000.000,00 esta manera le dará el dígito equivocado. Entonces necesitas reemplazar la comma quitar los dots .

// Remove all dot''s. Replace the comma. var fullcost = parseFloat($("#fullcost").text().replace(//./g,'''').replace('','', ''.''));

Al usar dos reemplazos, podrá tratar los datos sin recibir dígitos incorrectos en la salida.


Es mejor usar esta sintaxis para reemplazar todas las comas en un caso de un millón 1,234,567

var string = "1,234,567"; string = string.replace(/[^/d/./-]/g, ""); var number = parseFloat(string); console.log(number)

El g significa eliminar todas las comas.

Compruebe la demostración de Jsfiddle aquí .


Esto es "Por diseño". La función parseFloat solo considerará las partes de la cadena hasta que llegue a un non +, -, número, exponente o punto decimal. Una vez que ve la coma, deja de buscar y solo considera la parte "75".

Para arreglar esto, convierta las comas en puntos decimales.

var fullcost = parseFloat($("#fullcost").text().replace('','', ''.''));


Los números en JS usan a . (punto / punto) para indicar el punto decimal no a , (coma).


parseFloat de javascript no toma un parámetro de configuración regional. Entonces deberás reemplazar , con .

parseFloat(''0,04''.replace(/,/, ''.'')); // 0.04


parseFloat analiza de acuerdo con la definición de JavaScript de un literal decimal , no la definición de su localidad. (Por ejemplo, parseFloat no es consciente de la configuración regional). parseFloat decimales en JavaScript . para el punto decimal