Expliquez pourquoi le code ci-dessous se comporte de façon random
La ligne de code ci-dessous returnne TRUE
quand elle devrait returnner FALSE
?Isnumeric("555-")
Aussi
?Isnumeric("555-"/2)
returnne TRUE
Expliquez-vous ce comportement random d' IsNumeric
?
Bien qu'il soit un peu ésotérique, le minuscule inférieur est un format numérique valable parfois utilisé dans les packages comptables. Je suppose qu'il n'est pas utilisé tellement aujourd'hui. Il indique un nombre négatif, par exemple, 555- est -555. Votre deuxième exemple fonctionne car -555 (ou 555-) peut être divisé par 2 ie -227.5 (ou 227.5-).
Vous pouvez voir dans l'interface user Excel où elle permet le format en tant que partie du text vers les colonnes:
En outre, vous pouvez configurer un format de nombre pour utiliser négatif:
#,##0;#,##0-
Voir ce blog-post .
De Microsoft :
IsNumeric renvoie True si le type de donnée Expression est Boolean, Byte, Decimal, Double, Integer, Long, SByte, Short, Single, UInteger, ULong ou UShort, ou un Objet qui contient l'un de ces types numériques. Il renvoie également True si Expression est un char ou Ssortingng qui peut être converti avec succès en un nombre.
IsNumeric renvoie False si Expression est du type de données Date ou de type de données Objet et il ne contient pas de type numérique. IsNumeric renvoie False si Expression est un Char ou Ssortingng qui ne peut pas être converti en un nombre.
On dirait qu'il interprète "555-" comme -555. Après avoir vérifié IsNumeric, vous pouvez détecter cette situation comme ceci:
Cstr(CLng("555-")) = "555-"