ich stehe vor dem großen Problem, in Delphi (Lazarus) mit sehr großen Zahlen (5,974 · 10^24) und sehr kleinen Zahlen (6,673 · 10-11) arbeiten zu müssen. Ich habe mir schon etliche Threads durchgelesen, und auch die mir erscheinende Fehlermeldung 'SIGFPE' mehrmals gegoogelt, dabei ist nicht viel rausgekommen. Es geht dabei um folgenden Code:
Code: Alles auswählen
function THauptformular.RechneGKraft():Currency;
var y:Currency;
var m:Extended;
var r:QWord;
begin
y := 6.673 * 0.01;
r := 6371000000 + Round(aHoehe);
m := 5.974 * (10 ** 15);
result := y*m/(r ** 2);
end;
.Projekt >>.<< hat Exception-Klasse >>External:SIGFPE<< ausgelöst.
In Zeile 185: >>result := y*m/(r ** 2); <<
Wie ich festgestellt habe, ist es keine Speicherverletzung durch Initial. einer der vorigen Variablen.
Zur Perfomance: Das Programm errechnet sehr viele Werte (5*(540/0.1)), sodass die Lösung nicht zu sehr auf die Perfomance gehen sollte

Wie kann man das Problem lösen?
Grüße Patrick