Dans ActionScript (NaN == parseFloat (input.text)), il prévient qu'il sera toujours faux. Pourquoi?
-
02-07-2019 - |
Question
Malgré la documentation assez claire, qui indique que parseFloat () peut renvoyer NaN sous forme de valeur, lorsque j'écris. un bloc comme:
if ( NaN == parseFloat(input.text) ) {
errorMessage.text = "Please enter a number."
}
Je suis averti que la comparaison sera toujours fausse. Et les tests montrent que l’avertissement est correct.
Où se trouve la documentation corrigée et comment puis-je l'écrire pour fonctionner avec AS3?
La solution
Parce que comparer quoi que ce soit avec NaN est toujours faux. Utilisez isNaN () à la place.
Autres conseils
isNaN (parseFloat (input.text))
BTW, si pour une raison quelconque vous n’avez pas accès à isNaN (), la méthode traditionnelle consiste à comparer le nombre avec lui-même:
if( number != number )
{
//Is NaN
}
La documentation se trouve dans le manuel de référence du langage Adobe Flex ici. , ainsi que d'autres fonctions disponibles globalement.