Hallo Community,
ich habe eine Frage, die nicht unbedingt direkt mit Java zu tun hat, würde gerne hier nachfragen, wenn jemand hierzu schon Erfahrung gemacht hat.
Folgendes Szenario:
Ich möchte Rechnungen erstellen, die natürlich einen Nettobetrag bzw. Bruttobetrag, Positionen haben.
Was mir nun nicht ganz klar ist, wie ich mit Rundungen umgehe bzw. in welcher Form ich die Werte in der Datenbank speichere.
Im Moment speichere ich die Werte als double:
Hier kommen dann aber bspw. Werte wie: 100,5649764 zusammen, welche ich derzeit auch so in der Datenbank abspeichere.
Beim googlen finde ich zB diesen Beitrage:
https://billwerk.zendesk.com/hc/de/...werden-Rechnungsbeträge-in-billwerk-gerundet-
Daher meine Frage:
a) Soll ich nur die gerundeten Werte inkl. nur 2 Nachkommastellen in meiner Datenbank speichern, also zB 100,57 anstatt: 100,5649764?
b) Bevor ich etwas rechne, runde ich immer erst diese Werte und speichere dann den gerundeten Wert (mit mehr als 2 Nachkommastellen) in der Datenbank ab?
c) Ich speichere beide Werte (möchte ich aber eigentlich vermeiden), also den Wert inkl. mehr als 2 Nachkommastellen und den gerundeten Wert (mit nur 2 Nachkommastellen)
Nun doch noch etwas zu Java:
Wie würde ich das umsetzen:
Danke
ich habe eine Frage, die nicht unbedingt direkt mit Java zu tun hat, würde gerne hier nachfragen, wenn jemand hierzu schon Erfahrung gemacht hat.
Folgendes Szenario:
Ich möchte Rechnungen erstellen, die natürlich einen Nettobetrag bzw. Bruttobetrag, Positionen haben.
Was mir nun nicht ganz klar ist, wie ich mit Rundungen umgehe bzw. in welcher Form ich die Werte in der Datenbank speichere.
Im Moment speichere ich die Werte als double:
Java:
double total =0;
Hier kommen dann aber bspw. Werte wie: 100,5649764 zusammen, welche ich derzeit auch so in der Datenbank abspeichere.
Beim googlen finde ich zB diesen Beitrage:
https://billwerk.zendesk.com/hc/de/...werden-Rechnungsbeträge-in-billwerk-gerundet-
Rechnungspositionen werden in auf zwei Nachkommastellen symmetrisch gerundet. Die Regeln der symmetrischen Rundung (Banker's Rounding / Round to Even) sind hier erklärt.
Die Gesamtsumme einer Rechnung wird aus den gerundeten Rechnungspositionen berechnet.
Daher meine Frage:
a) Soll ich nur die gerundeten Werte inkl. nur 2 Nachkommastellen in meiner Datenbank speichern, also zB 100,57 anstatt: 100,5649764?
b) Bevor ich etwas rechne, runde ich immer erst diese Werte und speichere dann den gerundeten Wert (mit mehr als 2 Nachkommastellen) in der Datenbank ab?
c) Ich speichere beide Werte (möchte ich aber eigentlich vermeiden), also den Wert inkl. mehr als 2 Nachkommastellen und den gerundeten Wert (mit nur 2 Nachkommastellen)
Nun doch noch etwas zu Java:
Wie würde ich das umsetzen:
Was mir nicht klar ist: "nach der dritten Regel" ?Produkt A, Preis = 9,99 €
Rabatt auf Produkt A = 50,00 %
Zu zahlender Betrag = 9,99 € * 0,50 = 4,995 € = 5,00 €
4,995 € werden nach der dritten Regel der symmetrischen Rundung auf 5,00 € aufgerundet.
Danke