Recherche une explication à propos du IsNumeric ...

Tabaskov Messages postés 8 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 13 septembre 2004 - 28 juil. 2004 à 10:35
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 28 juil. 2004 à 12:17
Le problème est simple, et je ne suis pas le seul à le constater :

? IsNumeric("f") --> Faux (c'est normal)
? IsNumeric("1f") --> Vrai (curieux...)
? IsNumeric("f456f") --> Vrai (troublant...)
? IsNumeric("F14fFF f") --> Vrai (je n'y comprends plus rien)
? Val("F14fFF f") renvoie pourtant 0

On peut certes avoir les caractères "e", "&h", "&o", etc. qui sont des notations scientifiques ou des indicateurs de base (il y a "d" qui se comporte comme "e", je ne sais pourquoi), mais alors un val renvoie bien la bonne valeur. En revanche, on peut mettre des "F" un peu n'importe où, et IsNumeric retourne Vrai !

Pour résumer le problème :
pourquoi IsNumeric("F4,7d147FFFFF") renvoie vrai ?????

Merci

5 réponses

Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006
28 juil. 2004 à 11:00
IsNumeric ne permet que de vérifier si ces valeurs peuvent être considérées comme numérique ou pas par le compilateur (il me semble)
Là, je pense que tu travailles en hexadécimal, donc le compilo peut prendre ces valeurs pour du numérique (0 à F, base 16).
Ou alors il est bête et méchant, et IsNumeric vérifie simplement qu'il y ait AU MOINS un caractère numérique dans la valeur, ce qui me semblerait assez bizarre...

Maintenant, je ne fais que supposer...
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
28 juil. 2004 à 11:13
Bonjour
Etrange ! Chez moi (VB6 SP6), les réponses sont correctes.
0
Tabaskov Messages postés 8 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 13 septembre 2004
28 juil. 2004 à 11:31
Non, il n'y a pas de rapport avec du héxa,
si je fais
IsNumeric("45a")
ou bien
IsNumeric("a45")
ça renvoie bien faux...

Le problème apparaît avec les "f" (je n'ai pas essayé toutes les lettres de l'alphabet).

Il y a des gens qui disent que ça ne fait pas ça chez eux, peut-être... Mais je travaille dans une boîte informatique, et tous les postes qui ont VB renvoient vrai sur IsNumeric("f4f") par exemple.
Que l'on soit en debug ou en compilé. Ca le fait même dans l'exécutable sur d'autres postes...

Alors je repose la question, avec variante ;) :
pourquoi IsNumeric("f050FfF") renvoie vrai ?????

encore Merci...
0
Arsena Messages postés 190 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 27 septembre 2005
28 juil. 2004 à 12:13
Salut,

De meme que "Rene38" j'ai testé sous VB 6 et les reponses sont correctes
ex: IsNumeric("f050FfF") renvoie "Faux"

MD
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
28 juil. 2004 à 12:17
Vraiment désolé pour toi mais chez moi, IsNumeric("f050FfF") renvoie False !! Je suis en VB6 SP6 sur XP Pro SP1
Par contre IsNumeric("&Hf050FfF") me renvoie bien True : Logique car cela devient un nombre hexa.

Christophe R.
0
Rejoignez-nous