|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 454 ![]() |
Bonjour,
Qui peut m'expliquer cette bizarrerie de VB? Code :
et je passe par le if, mais si j'ajoute une décimale Code :
mais je ne passe pas par le if, idem si les variables sont de type variant ou double. Par contre si je les définis comme ceci Code :
|
||||||
|
|
00
|
|
|
#2 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 5 297 ![]() |
Parce que les nombre à virgule flottante (Single et Double pour VB) de part leur constitution même ne sont pas des nombres à représentation exacte. Tous les nombres réels imaginable ne sont pas forcément représentable en flottant.
Un nombre non représentable est représenté par le nombre représentable le plus proche. Ainsi il possible que 0.211 ne soit pas représentable, il serait alors représenté par 0.2109999999999999999999999...... ou par 2.11111111111111111111111111...
__________________
--- Sevyc64 --- Parce que le partage est notre force, la connaissance sera notre victoire |
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 454 ![]() |
Merci pour la réponse... donc se méfier des comparaisons de nombres ...
ou alors faire et là ça fonctionne |
|
|
00
|
|
|
#4 | |||
![]() ![]() Développeur informatique Inscription : mai 2002 Messages : 1 945 ![]() |
Bonsoir,
la comparaison de String est dangereuse ("5.1"<>"5.10") En dehors des valeurs décimales de type Currency il est aussi possible d'utiliser les Decimaux qui sont les plus grands nombres utilisables sous VB Code :
Rappel de la MSDN : Citation:
Autoriser les opérations en virgule flottante non arrondies est aussi à prendre en compte.
__________________
Je fournis pelles et pioches mais jamais l'huile de coude. ________________________________________________ « Heureux soient les fêlés, car ils laisseront passer la lumière. » Pensez aux liens Rechercher - Google - Google Labs - AllApi et avant de poster : « A lire » , « Tutoriel sur le déboguage » |
|||
|
|
10
|
|
|
#5 | |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 454 ![]() |
Bonjour,
Citation:
donc 5.10 devient 5.1 De même 00005.1000 devient 5.1 |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com