Würde ein Hardcast auf Int64 die Zahl verkleinern und keinen Fehler mehr erzeugen?
Schematisch
I := Int64(1024^7);
1024^7 ist als Operation nicht definiert. power(1024,7) Fließkomma und ein Hardcast nicht erlaubt. Es bleiben zwei unsinnige Konstruktionen
Delphi-Quellcode:
uses system.math;
var
x: double;
I: int64 absolute x;
begin
x := power(double(1024),7);
writeln('I absolute: ', I);
{$r-,q-}
I := 1024*1024*1024;
I := I*1024*1024;
I := I*1024*1024;
writeln('I als Produkt ', I);
end.
Das ergibt dann die falschen Werte
Code:
I absolute: 4922434392715952128
I als Produkt 0