# Datentyp für Geldbeträge,Prozente, Rechnungen



## mas (23. Apr 2006)

Hallo!
Ich hab da eine Frage.
Was für einen Datentyp verwendet man, wenn man mit Geld rechnen will und dies
kaufmännisch korrekt sein muss?

Ich meine, nehm ich z.B einfach einen Double Wert und Multipliziere diesen mit einer Menge oder einem
Prozentsatz, kommen ja mitunter zahlreiche Nachkommstellen zum vorschein. Mehr als in der Realität bei
Geldbeträgen beachtet werden.

Angenommen man befindete sich in einer größeren Rechnung:
Beispiel:
Preis1*Menge+Preis2*Menge+Prozentsatz*(Preis*Menge)=Endsumme

Wenn ich nun am Schluss runde, auf die kaufmännischen 2 Stellen nach dem Komma (z.b 22,50 EUR)
dann kommt vermutlich was anderes raus, als wenn ich jedes Zwischenergbnis runde.

Angenommern, das Programm muss aber kaufmännisch korrekt sein, d.h
es muss natürlich das rauskommen, was sich ein Buchhalter am Papier ausrechnet--->

Wie geht man da vor?
Welche Datentypen für Prozente, Geldbeträge?
Wann rundet man was nach welchen Regeln?

Gibts da eine dem Gesetzt entsprechende Vorgehensweise?
Bin für alle Tips dankbar

lg
mas


----------



## The_S (24. Apr 2006)

Brauchste das als Übung oder für was professionelles? Weil bei float und double kann es zu Differenzen der letzten Nachkommatelle kommen.

Wenn du es zweistellig brauchst, runde doch einfach bei jedem Rechenschritt (=> Forensuche).

btw: Banken rechnen auch nicht mit nur 2 Nachkommastellen. Weiß jetzt zwar auch nicht mehr mit wie viel genau (zu lange her   ), meine mich aber dunkel daran erinnern zu können, dass es 7 waren.


----------



## tingel (24. Apr 2006)

mas hat gesagt.:
			
		

> [...]Angenommern, das Programm muss aber kaufmännisch korrekt sein, d.h
> es muss natürlich das rauskommen, was sich ein Buchhalter am Papier ausrechnet--->[...]



Dann musst du halt genau an den gleichen Stellen runden wie der Buchhalter. Ansonsten habe ich mal gelernt, dass diese Aufgaben mit 5-7 Stellen nach dem Komma gerechnet werden. Ich habe solche Aufgaben immer mit double gelöst. Eine Ausnahme mit float, da ich gaaanz große Zahlen brauchte.


----------



## The_S (24. Apr 2006)

tingel hat gesagt.:
			
		

> Ich habe solche Aufgaben immer mit double gelöst. Eine Ausnahme mit float, da ich gaaanz große Zahlen brauchte.



Umgekehrt oder? float hat weniger Nachkommastellen als double  ???:L


----------



## mas (24. Apr 2006)

Danke für die Antworten.
Wäre schon für was "echtes".
Das heißt es geht um echtes Geld.

Es geht zwar um relativ simple Berechnungen, die müssen aber zu 100% Stimmen.

Werde wohl weitersuchen muessen.
Da muss es doch eine Allgemeine Vorgehensweise in JAVA geben.

lg
mas


----------

