per la stessa ragione di questo codice fatto in Excel
Option Explicit
Private Sub prova()
Dim i, n
n = 0
For i = 1 To 10
n = n + 0.1
Next
Debug.Print (n) '==> stampa 1
Debug.Print (n = 1) '==> stampa false
End Sub
la prima istruzione Debug.Print (n) stampa 1
la seconda istruzione Debug.Print (n = 1) stampa false perchè il risultato non è 1 ma un numero che gli avvicina molto.
In altre parole, non è possibile rappresentare in maniera esatta i numeri in formato in virgola mobile e i calcoli soffrono di questo. Perciò, il risultato lo devi arrotondare te

Rispondi quotando