¿Cómo convertir una cadena en flotante en JavaScript?
Estoy intentando analizar dos valores de una cuadrícula de datos. Los campos son numéricos y cuando tienen una coma (ej. 554,20), no puedo obtener los números después de la coma. Lo he probado parseInt
y parseFloat
. ¿Cómo puedo hacer esto?
Si deben ser valores separados, intente esto:
var values = "554,20".split(",")
var v1 = parseFloat(values[0])
var v2 = parseFloat(values[1])
Si deben ser un valor único (como en francés, donde la mitad se escribe 0,5)
var value = parseFloat("554,20".replace(",", "."));
¿Alguna vez has intentado hacer esto? :pag
var str = '3.8';ie
alert( +(str) + 0.2 );
+(string) convertirá la cadena en flotante.
¡Práctico!
Entonces, para resolver tu problema, puedes hacer algo como esto:
var floatValue = +(str.replace(/,/,'.'));
Reemplace la coma con un punto.
Esto sólo devolverá 554:
var value = parseFloat("554,20")
Esto devolverá 554,20:
var value = parseFloat("554.20")
Entonces, al final, simplemente puedes usar:
var fValue = parseFloat(document.getElementById("textfield").value.replace(",","."))
No olvide que parseInt()
solo debe usarse para analizar números enteros (sin puntos flotantes). En su caso, solo devolverá 554. Además, llamar a parseInt() en un flotante no redondeará el número: tomará su piso (entero inferior más cercano).
Ejemplo extendido para responder a la pregunta de Pedro Ferreira de los comentarios:
Si el campo de texto contiene miles de puntos separadores como esos 1.234.567,99
se podría eliminar previamente con otro replace
:
var fValue = parseFloat(document.getElementById("textfield").value.replace(/\./g,"").replace(",","."))