Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#9

Re: 0 + 0.1 = ? Probleme mit dem Datentyp Single?

  Alt 12. Okt 2004, 02:42
Wenn dir 4 Stellen nach dem Komma reichen, dann kannst du auch Currency (siehe Delphi-Referenz durchsuchenReelle Typen) nehmen - das ist ein fertig skalierter Integer,
oder du skalierst selber 'nen Integertypen, wenn du 'ne andere Anzahl an Nachkommastellen brauchst.
Delphi-Quellcode:
var time: Currency;
time := 0;
for i = 0 to 79 do begin
  ...{time}...
  time := time + 0.1;
end;
oder
Delphi-Quellcode:
var time: Integer;
time := 0;
for i = 0 to 79 do begin
  ...{time/10}...
  time := time + 1;
end;


Oder du addierste einfach nicht mehr die Rundungsfehler:
statt
Delphi-Quellcode:
var time: Real;
time := 0;
for i = 0 to 79 do begin
  ...{time}...
  time := time + 0.1;
end;
nimmst du halt
Delphi-Quellcode:
var time: Real;
for i = 0 to 79 do begin
  time := i * 0.1;
  ...{time}...
end;


Du könntest dir aber einfach mal Extended ansehen, der hat nicht ganz so große Rechenprobleme
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat