Ich möchte eine Fließkommazahl mit TIniFile.WriteFloat abspeichern und egal welchen Typ ich nehme (extended, single, double, real) wird, wenn ich eine 1 speichere, ein wilder Wert der Form 0,99999999987542 abgelegt.
Beim Laden und anschließenden Test auf 1 schlägt es natürlich fehl. Da 0,99999999987542 nunmal nicht 1 ist.
Wo liegt mein Denkfehler hier?
Vielen Dank schonmal und Happy Halloween!
Fehler 1: Du benutzt Gleitkommazahlen obwohl es dir anscheinend auf Akkuratheit ankommt (engl. accuracy, deu. "absolute Genauigkeit")
Fehler 2: Du vergleichst auf Gleichheit. Das sollte man mit Gleitkommazahlen nie machen.
Du kannst entweder Festkommazahlen hernehmen (wie z.B. Currency) oder du vergleichst mit einer Toleranz von +- 10^-6 oder sowas.