Comparateur de nombres décimaux à côté de la plaque!!!

Résolu
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013 - 30 mai 2011 à 11:53
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 30 mai 2011 à 12:44
Bonjour,

J'ai un petit souci qui me semble bien étrange....

Je compare deux valeurs numériques entré dans des string à l'aide du comparateur > .

If prod_jour > prod_jour_max Then prod_jour_max = prod_jour


Et étrangement, lors ce que prod_jour= "179,85" et prod_jour_max= "64,96" le comparateur ajit comme si 179,85 < 64,96 !!!!!

De la même manière avec 186,7599999 et 64,96 ; 257,17 et 64,96 etc...

Savez vous comment cela est il possible? Comment y remédier?
_______________________________________
Consommons autrement => enercoop

5 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
30 mai 2011 à 12:07
Salut

essaye plutot avec

If val(prod_jour) > val(prod_jour_max)
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 mai 2011 à 12:44
Ah ?

J'ai bien fais attention à remplacer mes "." en "," via la fonction replace(variable,".",",")

Et tu es ainsi satisfait ?
Pas moi !!!
A lire dans l'aide VB :
Note La fonction Val ne reconnaît que le point comme séparateur décimal (.). Lors de l'utilisation d'autres séparateurs décimaux (applications internationales, par exemple), convertissez la chaîne en nombre à l'aide de la fonction CDbl.

Et affiche maintenant ceci (tu devrais vite comprendre vers quel piège tu vas) :
MsgBox Val("11,55") = Val("11,01")
MsgBox CDec("11,55") = CDec("11,01")

Nota : tu pourrais utiliser également Cdbl au lieu de CDec.
Bon

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 mai 2011 à 12:24
Bonjour,

Je ne sais pas trop qui (du comparateur ou de toi) est "à côté de la plaque"
Je vais me contenter de ceci : lorsque l'on compare des nombres, ce sont des NOMBRES, qu'il faut comparer.
1) Si tes paramètres locaux utilisent des points comme séparateur décimal, les nombres décimaux s'expriment sous la forme (exemple) ####.####
2) "64,96" est une chaîne de caractères et non un nombre décimal
3) La fonction Val ne peut transformer une chaîne de caractères en nombre décimal que si la chaîne exprime un nombre décimal (voir en 1)
4) intéresse-toi également, pendant que tu y es, à la fonction CDec

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013
30 mai 2011 à 12:28
Parfait merci bien


_______________________________________
Consommons autrement => enercoop
0

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

Posez votre question
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013
30 mai 2011 à 12:31
A ucfoutu:

J'ai bien fais attention à remplacer mes "." en "," via la fonction replace(variable,".",",")

il ne me manquais plus que le Val, effectivement il ne comparais pas les valeurs mais les caractères...


_______________________________________
Consommons autrement => enercoop
0
Rejoignez-nous