How to convert string into float in JavaScript?
If they're meant to be separate values, try this:
var values = "554,20".split(",")var v1 = parseFloat(values[0])var v2 = parseFloat(values[1])
If they're meant to be a single value (like in French, where one-half is written 0,5)
var value = parseFloat("554,20".replace(",", "."));
Have you ever tried to do this? :p
var str = '3.8';iealert( +(str) + 0.2 );
+(string) will cast string into float.
Handy!
So in order to solve your problem, you can do something like this:
var floatValue = +(str.replace(/,/,'.'));
Replace the comma with a dot.
This will only return 554:
var value = parseFloat("554,20")
This will return 554.20:
var value = parseFloat("554.20")
So in the end, you can simply use:
var fValue = parseFloat(document.getElementById("textfield").value.replace(",","."))
Don't forget that parseInt()
should only be used to parse integers (no floating points). In your case it will only return 554. Additionally, calling parseInt() on a float will not round the number: it will take its floor (closest lower integer).
Extended example to answer Pedro Ferreira's question from the comments:
If the textfield contains thousands separator dots like in 1.234.567,99
those could be eliminated beforehand with another replace
:
var fValue = parseFloat(document.getElementById("textfield").value.replace(/\./g,"").replace(",","."))