Einzelnen Beitrag anzeigen

heiopei
(Gast)

n/a Beiträge
 
#2

Re: Probleme mit Bereichsüberprüfung

  Alt 15. Okt 2007, 14:44
hallo nochmal,
so... ich hab mich jetzt noch ein bisschen gespielt und bemerkt, dass Round als Ergebnistyp Int64 liefert! Daher hab ich jetzt folgende Typcasts durchgeführt - und es ging:

var
tmp: Int64;
begin
tmp := Round(EnsureRange(AlterWert / Skalierung, Low(Integer), High(Integer));
NeuerWert := Integer(tmp);
...

Allerdings erhalte ich für sehr große x-Werte bei f(x)=x² komische Werte - z.T. null oder negativ.
Liegt vermutlich an Overflows - oder?.

Wie kann ich das Problem am besten lösen, so dass ich nur "NeueWerte" bis High(Integer) erhalte und alle Werte, die darüber hinaus gehen = High(Integer) setzt werden?????
(am besten, ohne Bluescreen )

mfg,
heiopei
  Mit Zitat antworten Zitat