Bonjour,

Qui peut m'expliquer cette bizarrerie de VB?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Private Sub Form_Load()
 
Dim var1 As Single
Dim var2 As Single
Dim var3 As Single
 
var2 = 0.21
var3 = 21
var1 = var3 / 100
 
Debug.Print var1, var2
If var1 = var2 Then
  Debug.Print "je passe dans la condition"
               Else
  Debug.Print "je ne passe pas dans la condition"
End If
Stop
End Sub
Bien sûr la valeur de la variable 1 est identique à la variable 2,
et je passe par le if, mais si j'ajoute une décimale
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Private Sub Form_Load()
 
Dim var1 As Single
Dim var2 As Single
Dim var3 As Single
 
var2 = 0.211
var3 = 21.1
var1 = var3 / 100
 
Debug.Print var1, var2
If var1 = var2 Then
  Debug.Print "je passe dans la condition"
               Else
  Debug.Print "je ne passe pas dans la condition"
End If
Stop
End Sub
Les valeurs des deux variables sont identiques,
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Private Sub Form_Load()
 
Dim var1 As Currency
Dim var2 As Currency
Dim var3 As Currency
var2 = 0.211
var3 = 21.1
var1 = var3 / 100
 
Debug.Print var1, var2
If var1 = var2 Then
  Debug.Print "je passe dans la condition"
               Else
  Debug.Print "je ne passe pas dans la condition"
End If
Stop
End Sub
Là , je passe bien par le if sans problème.