OVH Cloud OVH Cloud

Pb fonction ISNUMERIC

3 réponses
Avatar
catherine
Avez-vous d=E9j=E0 rencontr=E9 le probl=E8me suivant :

SELECT ISNUMERIC('103D1') renvoie 1 (Bizarre!!!)
SELECT ISNUMERIC('103A1') renvoie 0 (normal)
SELECT ISNUMERIC('D1031') renvoie 0 (normal)
SELECT ISNUMERIC('1031D') renvoie 0 (normal)
SELECT ISNUMERIC('1031') renvoie 1 (normal)

Qu'en pensez-vous ?

3 réponses

Avatar
Julien
C vrai que ca a pas l'air super ....
Apparemment, SQLserver comprend l'ecriture decimal sous cette forme ....

SELECT ISNUMERIC('103d1') =>pour lui c'est du decimal donc il renvoie 1
exemple :
select convert(real,'103d1')
select convert(real,'103d2')
select convert(real,'103d3')

Me trompe-je ?...

Enfin, heureusement que je ne m'en sert pas souvent ...
Jul



"catherine" a écrit dans le message de
news:0f7101c3ef25$90a49740$
Avez-vous déjà rencontré le problème suivant :

SELECT ISNUMERIC('103D1') renvoie 1 (Bizarre!!!)
SELECT ISNUMERIC('103A1') renvoie 0 (normal)
SELECT ISNUMERIC('D1031') renvoie 0 (normal)
SELECT ISNUMERIC('1031D') renvoie 0 (normal)
SELECT ISNUMERIC('1031') renvoie 1 (normal)

Qu'en pensez-vous ?
Avatar
Patrice Scribe
Tu peux ajouter à la liste :
- 1e5 (notation scientifique) qui est bien numérique même si il est
impossible de le CASTer

Dans Excel, il m'est arrivé de voir le même problème avec 5F (F étant le
symbole du franc).

Je préfère éviter d'utiliser ces fonctions qui ont souvent une définition
plus large que "ne contient que les signes +, - , le point décimal et des
chiffres"

Par contre le coup du 103D1 me parait vraiment pousser le bouchon un peu
loin (?)

--

"catherine" a écrit dans le message de
news:0f7101c3ef25$90a49740$
Avez-vous déjà rencontré le problème suivant :

SELECT ISNUMERIC('103D1') renvoie 1 (Bizarre!!!)
SELECT ISNUMERIC('103A1') renvoie 0 (normal)
SELECT ISNUMERIC('D1031') renvoie 0 (normal)
SELECT ISNUMERIC('1031D') renvoie 0 (normal)
SELECT ISNUMERIC('1031') renvoie 1 (normal)

Qu'en pensez-vous ?
Avatar
lionelp
Bonjour,

103D1 est une représentation scientifique de nombre à virgule flottante
comme 1e5 d'ailleurs, renvoyer 1 est correct de ce point de vue.

Cordialement,
LionelP

"catherine" wrote in message
news:0f7101c3ef25$90a49740$
Avez-vous déjà rencontré le problème suivant :

SELECT ISNUMERIC('103D1') renvoie 1 (Bizarre!!!)
SELECT ISNUMERIC('103A1') renvoie 0 (normal)
SELECT ISNUMERIC('D1031') renvoie 0 (normal)
SELECT ISNUMERIC('1031D') renvoie 0 (normal)
SELECT ISNUMERIC('1031') renvoie 1 (normal)

Qu'en pensez-vous ?