Forum: Object-Pascal / Delphi-Language
Delphi
by gammatester,
27. Jun 2017
Ich glaube Du solltest Dir erst einmal klar werden, was Du unter "Stellen" verstehst. Bei Ganzzahl-Werten sind die "Stellen" tatsächlich so etwas wie die Anzahl der einzelnen (Dezimal-)Ziffern.
Bei Fließkomma-Zahlen (double) hat man sowas wie m*10^e, wobei im wesentlichen m eine Ganzzahl zwischen 0 und ca 10^16 ist. Hier hat ein double also ca 16 (signifikante "Stellen").
Bei...
Forum: Object-Pascal / Delphi-Language
Delphi
by gammatester,
25. Jun 2017
Das ist ja nicht das Problem. fmod hat nicht zu crashen, das ist mit Vorbehalt ein Delphi-Bug, da EMBA zumindest in der Hilfe keine Beschränkung erwähnt (ein Crash wäre OK, wenn der Quotient einen Overflow ergäbe).
Wenn man große Integer-Zahlen bearbeitet will, kann man mein http://www.wolfgang-ehrhardt.de/misc_de.html#mparith benutzen.
Edit: Dank an himitsu, der meine Vermutung bestätigt.
Forum: Object-Pascal / Delphi-Language
Delphi
by gammatester,
25. Jun 2017
fmod crasht auch bei double. Ich vermute, daß EMBA intern floor oder trunc verwendet, und die crashen halt wenn der Integerbereich übertreten wird (habe auch Starter ohne Quellcode).
Mit int hat man solche Probleme nicht (ob solche Rechnungen sinnvoll sind, ist eine andere Frage)
var
x,y,z: double;
begin
try
x := 1.23e150;
y := 2e20;
z := int(x/y);