Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1130 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Bizarrerie sur le test d'égalité dans un if ? [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP] Bizarrerie sur le test d'égalité dans un if ? [résolu]

n°439852
KSauzeRK
Posté le 26-06-2003 à 10:03:01  profilanswer
 

Bonjour,
 
Je viens de me mettre à l'ASP et j'ai constaté un truc bizarre :
 

Code :
  1. a = num_premier_enr
  2. b = (j - 1) * nb_enr_par_page
  3. if (a = b) then
  4. response.write a & "=" & b
  5. else
  6. response.write a & "!=" & b
  7. end if


 
Même quand a = b, le test répond toujours faux. Du coup j'obtiens un affichage du genre "10!=10". Si j'affecte 10 par exemple à a et b, là le test fonctionne.
 
Si par contre je remplace le test par :
 

Code :
  1. if (a - b) = 0 then


 
là ca fonctionne ... C'est une bizarrerie connue ? J'ai raté quelque chose (c'est possible...) ?


Message édité par KSauzeRK le 26-06-2003 à 11:31:34
mood
Publicité
Posté le 26-06-2003 à 10:03:01  profilanswer
 

n°439859
skeye
Posté le 26-06-2003 à 10:09:52  profilanswer
 

KSauzeRK a écrit :

Bonjour,
 
Je viens de me mettre à l'ASP et j'ai constaté un truc bizarre :
 

Code :
  1. a = num_premier_enr
  2. b = (j - 1) * nb_enr_par_page
  3. if (a = b) then
  4. response.write a & "=" & b
  5. else
  6. response.write a & "!=" & b
  7. end if


 
Même quand a = b, le test répond toujours faux. Du coup j'obtiens un affichage du genre "10!=10". Si j'affecte 10 par exemple à a et b, là le test fonctionne.
 
Si par contre je remplace le test par :
 

Code :
  1. if (a - b) = 0 then


 
là ca fonctionne ... C'est une bizarrerie connue ? J'ai raté quelque chose (c'est possible...) ?  


 
Pas fait d'asp depuis longtemps, mais a = b ca ressemble à une affectation...tu évaluerais pas le résultat de cette affectation là plutot que l'égalité de tes variables?? :sarcastic:

n°439886
KSauzeRK
Posté le 26-06-2003 à 10:26:17  profilanswer
 

skeye a écrit :


Pas fait d'asp depuis longtemps, mais a = b ca ressemble à une affectation...tu évaluerais pas le résultat de cette affectation là plutot que l'égalité de tes variables?? :sarcastic:  


 
euh...non j'ai eu un moment d'inquiétude, mais en vérifiant, l'opérateur '=' devient un opérateur de test s'il est dans un if.
J'ai essayé quand même '==' pour être sur, il me sort une erreur.

n°439946
skeye
Posté le 26-06-2003 à 10:56:52  profilanswer
 

KSauzeRK a écrit :


 
euh...non j'ai eu un moment d'inquiétude, mais en vérifiant, l'opérateur '=' devient un opérateur de test s'il est dans un if.
J'ai essayé quand même '==' pour être sur, il me sort une erreur.


pb de type de donnée p-e? :??:

n°439956
KSauzeRK
Posté le 26-06-2003 à 11:01:42  profilanswer
 

skeye a écrit :


pb de type de donnée p-e? :??:  


 
j'y avais pensé aussi, peut-être le typage dynamique qui fait que les types sont pas les mêmes...par contre je vois pas dans mon code où il aurait pu considérer l'un ou l'autre comme autre chose qu'un entier.
 
J'ai essayé de déclarer comme en VB  
Dim blabla As Integer  
mais il me jette. J'avoue que j'ai pas regardé plus loin, c'est par curiosité que j'aimerais savoir pourquoi la première solution a foiré...

n°439973
deliriumtr​emens
sic transit intestinal...
Posté le 26-06-2003 à 11:22:38  profilanswer
 

Ben b il devrait considérer ça comme une valeur numérique, vu qu'il y a multiplication
 
pour a, par contre, peut-être qu'il le prend pour un string.
 
Pour être sûr que les données soient du même type, précise dans ton if
 
if (Cint(a)=Cint(b)) Then
 
ça devrait le faire.

n°439985
KSauzeRK
Posté le 26-06-2003 à 11:30:47  profilanswer
 

DeliriumTremens a écrit :

Ben b il devrait considérer ça comme une valeur numérique, vu qu'il y a multiplication
 
pour a, par contre, peut-être qu'il le prend pour un string.
 
Pour être sûr que les données soient du même type, précise dans ton if
 
if (Cint(a)=Cint(b)) Then
 
ça devrait le faire.


 
Effectivement ca le fait. Je suis un boulet, num_premier_enr est en fait une chaine de caractère...sans commentaires :sweat:  
 
Merci à vous en tout cas.

n°439994
deliriumtr​emens
sic transit intestinal...
Posté le 26-06-2003 à 11:35:58  profilanswer
 

Note que le "typage" serait plus utile au moment de la déclaration de la variable, par rapport à ce que j'ai dit.
 
a=Cint(num_premier_enr)
 
Comme ça a est un Int à chaque fois que tu en as besoin.
 
Vu que le Dim x as Type ne marche effectivement pas.
 
Mais non tu n'es pas un boulet :whistle:  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] Bizarrerie sur le test d'égalité dans un if ? [résolu]

 

Sujets relatifs
[ASP] au pros de bouclesif ( $test == "test") ? echo '0' : echo '1' ;
[VB]Problème caractères spéciaux [Resolu][EclipseUML] Exporter un diagramme sous un format externe ? [résolu]
Un exe un programme JAVA [résolu... Google j'ai d'la chance...désolé]Utilisation de TabStrip [Résolu]
php : Problème version? [ RESOLU ][ASP] Definir des variables globales
Simuler l'appui d'une touche [Résolu]Voila j'ai a peu près fini mon prog ... download et beta test
Plus de sujets relatifs à : [ASP] Bizarrerie sur le test d'égalité dans un if ? [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR