Autor Beitrag
Fabian
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42



BeitragVerfasst: Di 06.08.02 20:28 
Hallo

Wie kann ich eine Zahl vom Typ Double oder Extended auf eine bestimmte Anzahl von Nachkommastellen runden ?
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Di 06.08.02 21:19 
Probiers mal hiermit, habs alledings nicht getestet:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 69



BeitragVerfasst: Mi 07.08.02 00:32 
wieso ist der result type extended ?? Sollte doch integer sein, wenn ich mich nicht irre.

mfg
Black Lightning

_________________
--erst programmieren, dann denken, dann debuggen--
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 69
Erhaltene Danke: 1



BeitragVerfasst: 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