trunc schnippelt den Nachkommaanteil ab, liefert einen integer,
int macht das Gleiche, liefert jedoch einen Extended.
Wer korrekt runden möchte, sollte sowas versuchen:
Delphi-Quellcode:
Function CorrectRound (aValue, aGranularity : Extended) : Extended;
Begin
Result := Int (aValue/aGranularity + 0.5)*aGranularity;
End;
Beispiele:
Delphi-Quellcode:
Begin
a := CorrectRound (1237.567, 0.10); // 1237,600
a := CorrectRound (1237.567, 0.01); // 1237,570
a := CorrectRound (1237.567, 1.00); // 1238,000
a := CorrectRound (1237.567, 10.00); // 1240,000
a := CorrectRound (1237.567, 0.25); // 1237,500
a := CorrectRound (1237.567, 2.00); // 1238,000
a := CorrectRound (1237.567, 5.00); // 1240,000
...