Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Real zur nächst kleineren Ganzzahl abrunden

  Alt 21. Jan 2006, 23:15
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
...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat