Forum: Programmieren allgemein
by alzaimar,
14. Nov 2006
Kaufmännische Anwendungen implizieren ja geradezu Currency, schließlich geht es ja ums Geld.
Eine Anwendung von uns berechnet Materialmengen, und da reicht Single z.B. schon gar nicht mehr aus. Die Berechnungen gehen über viele Iterationen und gerade hier potzenzieren sich Rundungsfehler. Wir arbeiten mit Double (das ist dann knapp ausreichend) und zeigen dann maximal 4 Nachkommastellen an....
Forum: Programmieren allgemein
by alzaimar,
14. Nov 2006
Currency hat 4 feste Nachkommastellen. Es handelt sich eigentlich um einen 64bit Integer Wert, also um (z.B.) 10000stel Cent.
Mit 4 Nachkommastellen kommt man aber auch nicht weit. Die richtige Vorgehensweise beim Rechnen mit reelen Zahlen ist entweder die Verwendung von Schutzstellen, oder die Verwendung von BCD-Datentypen. Diese sind aber nicht Bestandteil von Delphi.
Forum: Programmieren allgemein
by alzaimar,
14. Nov 2006
:oops: und deswegen auch:
While Time < StrToTime ('09:30') Do
Alzaimar.CanPostImForum := False
Forum: Programmieren allgemein
by alzaimar,
14. Nov 2006
Luckie: So ist es eindrucksvoller, da der oft verwendete Vergleich mit 0 schon hier in die Hose geht.
Var
a,b : Double;
begin
a := 0.1;
b := a - 0.1;
if b=0 then
ShowMessage('gleich')
else