Michael Schröpl: Kaufmänisch Rounden

Beitrag lesen

public double dem(double pd_DEMEntSumme)
   {
     pd_newDEM = pd_euro * pd_DEMEntSumme;
     Math.round(pd_newDEM);
     ps_dem = String.valueOf(pd_newDEM);

return pd_newDEM;
   }

Nur so als Anmerkung: Wenn Du mit "richtigem" Geld rechnest, dann halte ich die Verwendung von "double" generell für Kamikaze, weil sich ggf. unbemerkt Rundungsfehler akkumulieren können.
Wer merkt schon, wenn ihm am Ende ein Pfennig fehlt? (Und wenn man eine Bank ist und viiiiele solcher Transaktionen macht ...)

*Etwas* besser ist die Methode, Geldbeträge grundsätzlich ganzzahlig darzustellen (also DM-Beträge in Pfennigen zu rechnen).
Das ist rundungsfehlerfrei, aber wiederum maschinenabhängig auf irgendeine Registerlänge etc. limitiert, führt also leicht zu Abstürzen oder (noch schlimmer) unbemerkten Überläufen.
(2 Mrd Pfennige sind nämlich gar nicht sooo viel, wenn man es genau betrachtet - und noch schlimmer ist es, wenn man in Yen oder Lira denkt ...)

Die einzige mir bekannte wirklich zuverlässige Methode ist die Verwendung von *Strings* und die Implementierung von Methoden für die benötigten Grundrechenarten. (Also letztlich die Definition eines eigenen Datentyps.)
Mit einer Sprache wie Java sollte das prima zu machen sein.