Domino 9 und frühere Versionen > ND6: Entwicklung

Rundungsfehler

(1/3) > >>

Thorsten Kalweit:
Hallo zusammen,

in unserer Rechnungsdatenbnak habe ich einen Rundungsfehler festgestellt:

Formel für den Bruttobetrag:
nbetrag+(nbetrag * ust_s / 100)

Nettobetrag:
313,50

19% von 313,50 = 59,57, obige Formel ergibt aber 373,06 statt 373,07 (Felder sind numerisch mit 2 Nachkommastellen)

Wisst Ihr, welches Problem da besteht?

flaite:
Hängt nicht mit Lotus Notes zusammen. Das gibts in jeder Programmiersprache, die mit Gleitkommazahlen (floating point numbers) zu tun hat.
Du kannst solltest dir das mal durchlesen:
http://docs.sun.com/source/806-3568/ncg_goldberg.html

Für mich beliebte: Alternativen zu floating point:
Der SQL Datentyp NUMERIC. Hier ist die Anzahl der Stellen hinter dem Komma fest definiert.
Die Java Klasse BigDecimal. Hier kann die Anzahl der Stellen hinter dem Komma sehr groß werden. Kann natürlich viel Speicher in Beschlag nehmen.

flaite:

--- Zitat von: Axel Janssen am 26.02.07 - 10:21:22 ---
Du kannst solltest dir das mal durchlesen:
http://docs.sun.com/source/806-3568/ncg_goldberg.html

--- Ende Zitat ---

OOpsy. Das kapier ich selber nicht so ganz. Das ist einfacher verständlich: http://de.wikipedia.org/wiki/Gleitkommazahl

Thorsten Kalweit:
öhhh... ich arbeite in der DB nicht mit Java.  ;)

Meines Erachtens hat es dann doch mit Notes zu tun, bzw. mit dem Handlig der Zahlenwerte.  :-:

Gibt es dazu einen einfachen Workaround?

DerAndre:
Jo, den Faktor 100 oder größer, je nach belieben

Nettobetrag * 100 dann das Ergebnis wieder durch 100. Das sollte funktionieren.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln