Zitat von
Phoenix:
Eine Zuweisung von 1.1 kann u.u. einen Wert von 1.100000000000000000000000000000001 oder ähnliches im Double erzeugen (je nach aktueller Genauigkeit). Aber 1.100000000000000000000000000000001 ist nunmal nicht 1.1. Ergo false, da hat Delphi vollkommen recht
Hm. Ich werfe Delphi 1.1 = 1.1 vor die Füße und es macht mir daraus 1.1 + 10^-15 = 1.1 + 10^-15. Wird die Aussage dadurch unwahr
?
Imo ist die Frage durchaus berechtigt, wenn man es noch nicht weiß und mit
Asm nichts anfangen kann, und die genaue Antwort fehlt bisher: Das Float-Literal wird als Extended gespeichert, womit dessen Genauigkeit größer als die der Double-Variable ist. Man müsste also entweder beide Argumente zuerst in Double-Variablen speichern (bei anderen Sprachen könnte man stattdessen auch einen Postfix benutzen, der das Literal als Double-Wert identifiziert) oder eben gleich SameValue benutzen.