Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstellen

ccunirent

Aktives Mitglied
21. Februar 2013
10
0
Hallo zusammen,

mir ist aufgefallen, dass die Wawi beim Drucken einer Rechnung bei Netto-Einzelpreisbeträgen ab 100.000 Euro nur noch auf volle Zehntel-Dezimalstellen rundet.

Also: 100.000,2499 € wird zu 100.000,30 €

Formular-Variable: Auftragspositionen.NettopreisEinzel

Ist dies bekannt? Gibt es hierfür eine Lösung?

Grüße

Jan Stumpf
 

reneromann

Sehr aktives Mitglied
31. August 2012
2.135
5
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

Die Wawi rundet hier nicht, vielmehr liegt das Problem darin begründet, dass die verwendeten Fließkommazahlen nur auf 7..8 Dezimalstellen genau sind - und genau da kratzt du hier dran rum. (vgl. IEEE 754, Single Precision).
 

ccunirent

Aktives Mitglied
21. Februar 2013
10
0
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

Danke für Deine Antwort reneromann,


also handelt es sich hierbei um eine verwendete Definition eines Datentyps einer Variable innerhalb des Programmlaufs der Wawi.


Sehe ich das richtig?


Könnte JTL hierfür einen Patch zur Verfügung stellen?


Grüße


Jan Stumpf
 

reneromann

Sehr aktives Mitglied
31. August 2012
2.135
5
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

also handelt es sich hierbei um eine verwendete Definition eines Datentyps einer Variable innerhalb des Programmlaufs der Wawi.

Sehe ich das richtig?
Ja, es handelt sich um die Definition eines Datentyps einer Variable innerhalb der Wawi, ABER auch innerhalb der MSSQL-Datenbank.

Könnte JTL hierfür einen Patch zur Verfügung stellen?
Jein - selbst mit Umstellung auf doppelte Genauigkeit würde das Problem noch immer auftreten (wenn auch dann erst bei deutlich größeren Summen).
Problem ist halt nur, dass dieser Patch erfordert, dass so ziemlich alle Stellen in der Wawi und der Datenbank, wo mit den Preisen gearbeitet wird, entsprechend angepasst werden müssen (und das sind einige!).
 

ccunirent

Aktives Mitglied
21. Februar 2013
10
0
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

Ja, es handelt sich um die Definition eines Datentyps einer Variable innerhalb der Wawi, ABER auch innerhalb der MSSQL-Datenbank.

Ich denke nicht, dass es sich um ein Feld in der Datenbank handelt, da der „falsche“ Betrag ausschließlich auf der gedruckten Rechnung auftaucht. Die Werte in den Feldern der Wawi sind jedoch korrekt.

Jein - selbst mit Umstellung auf doppelte Genauigkeit würde das Problem noch immer auftreten (wenn auch dann erst bei deutlich größeren Summen).

Dass irgendwann jede Genauigkeit endet ist schon klar. Wenn dies allerdings erst bei Zahlen ab 16, statt 8 Dezimalstellen der Fall ist, sollte es nur noch sehr wenige, bis gar keine Problemfälle mehr geben.

Problem ist halt nur, dass dieser Patch erfordert, dass so ziemlich alle Stellen in der Wawi und der Datenbank, wo mit den Preisen gearbeitet wird, entsprechend angepasst werden müssen (und das sind einige!).

Wie schon gesagt, ist uns das Problem nur beim Rechnungsdruck aufgefallen. Vermutlich sind noch die Formulardrucke der Rechnungskorrekturen und Angebote davon betroffen.

Ein Patch für diese Stellen würde für uns zunächst ausreichen.

Grüße

Jan Stumpf
 

reneromann

Sehr aktives Mitglied
31. August 2012
2.135
5
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

Nur als Info: Der Rechnungsbetrag pro Position wird als Datenbankfeld vom Typ "real" (single precision) gespeichert... -> tbestellpos.fVKPreis
 

ccunirent

Aktives Mitglied
21. Februar 2013
10
0
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

Wurde hier im Editor die Ausgabe auf 4 Nachkommastellen umgestellt?
Std. Vorlagen in der Wawi haben alle eine Ausgabe auf 2 Nachkommastellen.

Die Ausgabe mit 2 Nachkommastellen ist ja gewünscht. Es mangelt an der Genauigkeit beim Runden, da der Rechnungsdruck, bzw. die Ausgabe lediglich auf ganze Zehntel rundet.

Also: 100.000,23 wird zu 100.000,20

Grüße

Jan
 

ccunirent

Aktives Mitglied
21. Februar 2013
10
0
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

Nur als Info: Der Rechnungsbetrag pro Position wird als Datenbankfeld vom Typ "real" (single precision) gespeichert... -> tbestellpos.fVKPreis

Gut zu wissen, Danke.

Habe gerade bemerkt, dass in diesem Feld „tbestellpos.fVKPreis“ eine Eingabe (auch direkt in der Datenbank) von „100.000,23“ zu „100.000,2265625“ wird. Wird dann in der Wawi auch als „100.000,2266“ angezeigt.

Allerdings hat das auch nichts mit der Ausgabe beim Rechnungsdruck zu tun. Da kommt dann „100.000,20“ raus.

Grüße

Jan
 

Janusch

Administrator
Mitarbeiter
24. März 2006
13.921
264
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

Hm, schaue ob unter Globale-Einstellungen in der Wawi das Runden auf 5Ct aktiv ist. Es sieht stark danach aus.
 

ccunirent

Aktives Mitglied
21. Februar 2013
10
0
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

Rappenrundung auf 0,05 € ist deaktiviert.

Das Problem besteht ja auch darin, dass auf 0,10 € gerundet wird. Kann damit also auch nichts zu tun haben.

Trotzdem Danke.

Grüße

Jan
 

ccunirent

Aktives Mitglied
21. Februar 2013
10
0
AW: Rechnungsdruck: Rundung ab 100.000 Euro, nur noch auf ganze Zehntel-Dezimalstelle

Fstr$(Auftragspositionen.NettopreisEinzel,"-##,###,##&.##") + " " + Vorgang.Auftrag.Währung