Entwickler-Ecke
Sonstiges (Delphi) - Runden
Fabian - Di 06.08.02 20:28
Titel: Runden
Hallo
Wie kann ich eine Zahl vom Typ Double oder Extended auf eine bestimmte Anzahl von Nachkommastellen runden ?
Cashels - Di 06.08.02 21:19
Probiers mal hiermit, habs alledings nicht getestet:
Quelltext
1: 2: 3: 4: 5: 6:
| uses math ;
function Runden (f : extended ; n : integer) : extended ; begin Result := round(f*Power(10,n)) / Power(10,n) ; end ; |
Gruss,
Tom
Black Lightning - Mi 07.08.02 00:32
wieso ist der result type extended ?? Sollte doch integer sein, wenn ich mich nicht irre.
mfg
Black Lightning
Klabautermann - Mi 07.08.02 00:47
Black Lightning hat folgendes geschrieben: |
wieso ist der result type extended ?? Sollte doch integer sein, wenn ich mich nicht irre. |
Du irrst dich, es nach den Runden auf eine bestimmte anzahl von nachkommerstellen gefragt, diese Nachkommastellen müssen natürlich auch mit zurückgegeben werden.
@Fabian: Wenn du, wie in Deutschland üblich, Kaufmännisch runden willst, dann darfst du Round nicht verwenden. Das verwendes das Amerikanische BankersRuond was sich von unserem verfahren unterscheidet.
Eine einfache Funktion zum Kaufmännischen runden könnte so aussehen:
Quelltext
1: 2: 3: 4:
| function kRound(aValue : Extendet) : Integer; begin Result := Trunc(aValue * 0.55555555555555); end; |
Verbesserungsvorschläge werden gerne angenommen ;).
Gruß
Klabautermann
Spike - Mi 07.08.02 17:04
Klabautermann hat folgendes geschrieben: |
Eine einfache Funktion zum Kaufmännischen runden... |
Noch viel einfacher dürfte hier wohl die Verwendung des Typ's Currency sein :-)
Spike
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!