Einzelnen Beitrag anzeigen

Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

Aus Extended wird immer Integer (oder Delphi rundet selbstständig)

  Alt 12. Okt 2015, 14:04
Hi,

ich habe hier ein "merkwürdiges" Problem.
In folgernder Routine sollen die Min- und die Max-Werte einer Liste bestimmt werden:
Delphi-Quellcode:
    self.FMax:=self[0].FYR;
    self.FMin:=self[0].FYR;
    for I := 0 to self.Count-1 do
    begin
      if self[i].FYR > self.FMax then
        self.FMax:=self[i].FYR;
      if self[i].FYR < self.FMin then
        Self.FMin:=self[i].FYR;
    end;
Die Deklaration der Variablen sieht so aus:
Delphi-Quellcode:
    FYR: Extended;
    FMax: Extended;
    FMin: Extended;
Jetzt sollte man annehmen, dass Extended auch Extended bleibt, und auch die Kommastellen mit übertragen werden.
Doch bereit nach der ersten Zeile wo in FYR 5,12343223 sind wir in FMin nur 5 abgelegt.
Ist 4,7734673 in FYR wird ebenfalls in FMin eine 5 abgelegt.

Logischerweise schlagen alle weiteren Vergleiche fehl, das in diesem speziellen Fall in FYR nur Werte von 4,75 bis 5,25 enthalten sein können.

Erklären kann ich es mir nicht. Ich brüte nun schon lange drauf rum, aber es erschließ sich mir nicht, wo der Fehler liegen sollte.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat