Comment puis-je simplement vérifier si une valeur renvoyée de type int code> ou
uint code> est un nombre? p>
4 Réponses :
simple: garder à l'esprit que si regardons un exemple: p> _myvalue code> est de type < Code> int code> ou
uint code>, puis
(_ myvalue est numéro) code> assimilera également
vrai code>. Si vous voulez savoir si
_myvalue code> est un chiffre qui n'est pas un entier entier (int) ou non signé (UINT), en d'autres termes, un flotteur, vous pouvez simplement modifier le conditionnel comme suit: < / p>
"_myvalue est le numéro" "sera toujours vrai et typeof (_myvalue) sera toujours" numéro "même si _MYValue est tapé comme INT ou UINT. Selon Stackoverflow.com/a/9447869/88409 flash stocke des valeurs entières en tant qu'OB et en nombre uniquement s'il y a un Partie fractionnée de la valeur ou dépasse 0x0FFFFFFF (valeur la plus élevée pouvant être stockée dans les 28 bits restants de l'atome 32 bits qui se réserve 3 bits pour une description de type et 1 bit pour le signe). Voir aussi Stackoverflow.com/a/2697151/88409 et un cas de test ici: Troyworks.com/blog/2007/12/02/As3-unStanding-uint-Int- NUM BER
Le questionneur veut savoir si _myvalue est un nombre, pas un nombre.
@ROBERT DÉSOLÉ Je peux être un peu de Dunce parfois, pas tout à fait sûr de ce que vous obtenez.
@TAURAYI Votre méthode renvoie false pour les chaînes numériques valides. La question est ambiguë mais j'ai supposé qu'il cherchait un moyen de dire si quelque chose est un nombre, pas seulement si c'est un type numérique.
Pour prendre en compte les chaînes numériques ainsi que le nombre, INT et UINT, le test est beaucoup plus simple: var isnumeric: booléen =! Isnan (numéro (valeur)); code>. Cela gérera une valeur de n'importe quelle valeur, mais essaiera également de convertir des chaînes en chiffres. Si c'est un numéro ou peut être converti en un numéro, il s'agit d'une valeur numérique. Pas besoin de tester les types de numéro, INT et UINT avec le
est code> explicitement.
Ces méthodes pourraient être problématiques si vous souhaitez vérifier l'entrée d'un champ de texte, qui est «toujours» une chaîne. Si vous avez une chaîne avec "123" et que "123" est le numéro, vous obtiendrez un faux. Donc, le nombre ("123") donnerait de vrai, mais encore une fois, alors Numéro ("Lalala") ("Lalala") ("éventuel) (événement que le résultat est nan qui te dira que NaN est le numéro (vrai).
Travailler avec la chaîne que vous pourriez faire : p>
Si vous voulez seulement savoir si MyValue est l'un des types numériques em> (numéro, int, uint), vous pouvez vérifier si Si vous aussi em> veux savoir si _MYValue est un chaîne numérique em> (comme "6320" ou "5,987"), utilisez ceci: p> < Pré> xxx pré> il utilise le numéro Il retournera true pour toute variable de type (_ myvalue est numéro) code> comme Taurayi suggéré.
(_myvalue) code> pour lancer
_myvalue code> au numéro
numéro code>. Si
numéro code> est incapable de le convertir en un numéro utile, il retournera
nan code>, nous utilisons donc
! Isnan () code> pour vous assurer que la valeur renvoyée n'est pas "pas un nombre". p>
numéro code> (tant que sa valeur n'est pas
nan code>) ,
int code>,
uint code> et cordes contenant une représentation valide d'un nombre. p> p>
Imo, c'est la meilleure réponse. C'est exactement ce que j'aurais affiché. Bien que cela n'explique pas complètement la relation entre le nombre, INT et UINT (c'est-à-dire que tout INT est un nombre, mais les chiffres ne sont pas nécessairement des INT ou des UINTS), cette mise en œuvre est meilleure que les contrôles conditionnels, en partie parce qu'il faut également cordes numériques en compte.
@Triynko j'ai édité ma réponse pour mieux expliquer les types numériques.