Remplacez la virgule par un point.
Cela ne renverra que 554 :
var value = parseFloat("554,20")
Cela renverra 554.20 :
var value = parseFloat("554.20")
Donc, à la fin, vous pouvez simplement utiliser :
var fValue = parseFloat(document.getElementById("textfield").value.replace(",","."))
N'oubliez pas que parseInt()
ne devrait être utilisé que pour parser des entiers (pas de nombres à virgule flottante). Dans votre cas, cela ne renverra que 554. De plus, appeler parseInt() sur un flottant ne va pas arrondir le nombre : il prendra son plancher (entier le plus proche vers le bas).
Exemple étendu pour répondre à la question de Pedro Ferreira dans les commentaires :
Si le champ de texte contient des séparateurs de milliers sous forme de points comme dans 1.234.567,99
, ceux-ci pourraient être éliminés au préalable avec un autre replace
:
var fValue = parseFloat(document.getElementById("textfield").value.replace(/\./g,"").replace(",","."))
0 votes
Voir aussi : stackoverflow.com/questions/24318654