Rundungsfehler bei bestimmten Zahlen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
VAK
Beiträge: 6
Registriert: 18.06.2013, 15:39

Rundungsfehler bei bestimmten Zahlen

Beitrag von VAK » 11.01.2018, 15:45

Hallo,
Kaufmännische Rundungen im LCD sind normalerweise sehr einfach - über die Anzahl der Nach-Komma-Stellen (limit Trailing Digits) sowie das Zahlenformat (Patterns...). In meinem Beispiel (siehe Anhang) soll 15% von einem Betrag gerechnet und das Ergebnis dann kaufmännisch auf zwei Nach-Komma-Stellen gerundet werden.

Nun aber ist das Ergebnis für einige Zahlen falsch. Z.B. 15% von 26.631,50 ist 3.994,725. Gerundet wird aber auf 3.994,72 statt auf ...,73.
Bei der Zahl 36.631,50 rundet es aber richtig.

Hat damit jemand Erfahrung?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Rundungsfehler bei bestimmten Zahlen

Beitrag von armine » 11.01.2018, 16:53

Hallo VAK,

Runden kann wegen des (internen) binären Zahlenformats zu falschen Ergebnissen führen.
Verwende JS und den Code:
this.rawValue = Math.round(amount.rawValue * 15) / 100
Dann ist das Problem wenigstens für deine Beispielzahlen behoben.

vg armine

VAK
Beiträge: 6
Registriert: 18.06.2013, 15:39

Rundungsfehler bei bestimmten Zahlen

Beitrag von VAK » 11.01.2018, 17:04

Alles klar. Versuche ich so. Vielen Dank für die schnelle Hilfe.
VG VaK

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Rundungsfehler bei bestimmten Zahlen

Beitrag von armine » 11.01.2018, 17:12

Mit FormCalc geht es auch:
Round(amount * 15) / 100

Antworten