Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#17

AW: Stringgrid Plus Minus Vergleich

  Alt 25. Jun 2011, 19:22
Mir ist noch was aufgefallen, was direkt nichts direkt mit dem Problem zu tun hat aber evtl. später für Verwirrung sorgen kann:
Delphi-Quellcode:
k:= StrToFloat(JvSG1.Cells[2,i]); l:= StrToFloat(JvSG1.Cells[2,i+1]);
If k > l then JvSG1.Cells[9,i+1] := '-1';
If k < l then JvSG1.Cells[9,i+1] := '+1';
If k = l then JvSG1.Cells[9,i+1] := '0';
Flieskommazahlen (außer Currency) sollte man möglichst nicht auf "gleich" testen, da u.U. mathematisch gleiche Zahlen aufgrund Abbildungsungenauigkeiten in der Fließkommazahl plötzlich ungleich werden.

Statt nun kompliziert zu runden (was auch nie genau wird) könnte man die Quelle vor der Umwandlung testen:
Delphi-Quellcode:
if JvSG1.Cells[2,i] = JvSG1.Cells[2,i+1] then
  JvSG1.Cells[9,i+1] := '0'
else
  // größer / kleiner prüfen
PS: Man könnte meinen, dass gleiche Strings immer gleich umgewandelt werden sollten. Meine mich aber zu erinnern, das Intel-CPUs da einen Mechanismus haben, Ungenauigkeiten durch wechselndes auf/abrunden auszugleichen (hoffe, das hab' ich nicht falsch in Erinnerung).

Geändert von Satty67 (25. Jun 2011 um 19:26 Uhr)
  Mit Zitat antworten Zitat