Quelle est la meilleure manière de convertir une chaîne de caractères (String) en nombre en Javascript
les méthodes les plus connues sont bien sur parseInt pour convertir en entier et parseFloat pour convertir en nombres flottants . Mais voyons quelques erreurs a ne pas faire avec ces méthodes .
alert( parseInt("30") ) // affiche 30
alert( parseInt(30) ) // affiche 30
alert( parseInt("030") ) // affiche 24
alert( parseInt("00000030") ) // affiche 24
C'est surprenant comme résultats !! Mais si on regarde de prés au fait la méthode parseInt prend un deuxième paramètre qu'on oublie souvent et c est pas toujours sans conséquences
On devrait écrire plutôt ce ci :
alert( parseInt("30",10) ) // affiche 30
alert( parseInt(30,10) ) // affiche 30
alert( parseInt("030",10) ) // affiche 30
alert( parseInt("00000030",10) ) // affiche 30
alert( parseInt("30km",10) ) // affiche 30
Le deuxième paramètre spécifie la base décimale .
Pour éviter les anomalie de parseInt le mieux serait de faire ceci :
alert( Math.floor("30") ) // affiche 30
alert( Math.floor(30) ) // affiche 30
alert( Math.floor ("030") ) // affiche 30
alert( Math.floor("00000030") ) // affiche 30
alert( Math.floor("30km") ) // affiche NaN
Ou mieux encore
alert(Number ("30") ) // affiche 30
alert( Number(30) ) // affiche 30
alert( Number ("030") ) // affiche 30
alert( Number("00000030") ) // affiche 30
alert( Number("30km") ) // affiche NaN
Ou encore
alert(+"30" ) // affiche 30
alert( +30 ) // affiche 30
alert( + "030" ) // affiche 30
alert(+"00000030" ) // affiche 30
alert(+"30km" ) // affiche Nan
Ou encore
alert("30"/1 ) // affiche 30
alert( 30/1 ) // affiche 30
alert( "030" /1) // affiche 30
alert("00000030" /1) // affiche 30
alert("30km" /1) // affiche NaN
Enfin selon le cas on choisira la méthode a utiliser car elles ont toutes leurs avantages .
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire