Stavo scrivendo un programma dove utilizzavo in modo intensivo la matematica in doppia precisione, quando mi sono accorto di uno strano comportamento di VB6 al quale non riesco dare una spiegazione logica.

Provate a scrive il codice qui sotto:

Dim A As Double
Dim B As Double
Dim C As Double
Dim D As Double
A = 5624.8
B = 0.1
C = (A /B)
D = Int(A /B)

E' evidente che C e D dovrebbero riportare lo stesso valore intero in quanto A è divisibile per B.
Con i valori sopra riportati di A e B, C e D dovrebbero essere impostati ambedue a 56248.
Ebbene, sembra incredibile, ma il risultato delle operazioni in questione, secondo il mio VB6 è:

C = 56248

e

D = 56247 (?!?!)

Il problema scompare se A e B sono interi oppure se il rapporto A/B non è un intero (in tal caso la funzione Int fa il suo dovere).
Qualcuno ne sa qualcosa?

Massimo