Wer misst, misst Mist!
...würde man in der Messtechnik sagen.
Um das von Klaus richtig gesagte noch zu illustrieren...
Wenn man Float benutzt, bekommt man auch nur Float, also 32 Bit. Dies entspricht - je nach gewählter interner Darstellung - ungefähr 8 Ziffern, was man auch unmittelbar am Beispiel (
3.9000000953674316) erkennen kann: Die ersten 8 Ziffern stimmen genau!
Alle weiteren Ziffern sind halt im Rahmen der "Messungenauigkeit"...
Daher sollte man bei Gleitkommazahlen auch nicht auf Gleichheit testen, sondern auf Ähnlichkeit. Also nicht so:
Sondern besser so:
If Abs(aFloat - bFloat) < 0.00001 Then