Autor Thema: Rechenfehler  (Gelesen 2072 mal)

Offline gizmo72

  • Frischling
  • *
  • Beiträge: 5
Rechenfehler
« am: 20.11.09 - 12:47:52 »
Hallo NOTES-Gemeinde,

ich habe ein Problem, dass ich entweder nicht verstehe, ich einfach zu blöd bin oder es einfach nur Freitag ist:

In einer Maske gib es ein manuell bearbeitbares Feld "Rechnungbetrag" (Zahlenfeld, mit Dezimal, 2 Stellen fest). Sobald das Feld gefüllt ist wird ein verstecktes Feld "RechnungsbetragZ" (Zahlenfeld, mit Dezimal, 2 Stellen fest) mit der gleichen Summe.

Da es in der DB um eine steuerliche Berechnung geht, muss der Rechnungsbetrag auf 3 Werte aufgeteilt werden. hierzu gibt es in der Maske also 3 weitere manuelle Felder "Werbung", "Bewirtung" und "Geschenke" (alle Zahlenfeld, mit Dezimal, 2 Stellen fest).

Vor dem speichern findet nun eine Summenvalidierung statt, dabei werden die Werte aus den Feldern "Werbung"+"Bewirtung"+"Geschenke" zusammengerechnet und mit dem versteckten Feld "RechnungsbetragZ" verglichen.

Das funktioniert auch wunderbar, bis auf folgende Rechnung:

Rechnungsbetrag: 14.833,35 €
(verstecktes berechnetes Feld "RechnungsbetragZ): 14.833,35 €

Werbung: 0,00 €
Bewirtung: 8.157,45 €
Geschenke: 6.675,90 €
(berechnete Summe aus den 3 Feldern: 14.833,35 €)

Bei der Validierung erscheint nun der Hinweis dass die beiden Summen nicht korrekt sind.
Änder ich die Beträge aber ab, dann stimmt die Formel.
Kann das nur am Rundungsproblem liegen?

In der Hoffnung dass ich mich verständlich ausgedrückt habe...

... schöne Grüße
Michael





Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Rechenfehler
« Antwort #1 am: 20.11.09 - 13:06:14 »
Ich vermute, dass es ein Rundungsproblem ist. Hast du mal versucht ganze Beträge, alo ohne Cents, einzutragen?

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Re: Rechenfehler
« Antwort #2 am: 20.11.09 - 13:17:25 »
Hallo,

was steht denn tatsächlich in den Feldern drin (Properties des Dokumentes)?

Gruß Werner
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

Offline gizmo72

  • Frischling
  • *
  • Beiträge: 5
Re: Rechenfehler
« Antwort #3 am: 20.11.09 - 15:09:30 »
Hallo,

die Felder sind vom Typ "Zahl" und enthalten genau die Werte sind auch korrekt gespeichert.

Die Rechnung bzw. Validierung funktioniert ja auch seltsamerweise wenn ich einen anderen Betrag nehme, es reicht ja schon wenn ich die Gesamtsumme und das Bewirtungsfeld um 10 Cent reduziere.
Nur wenn ich genau die Zahlen so eingebe wie oben beschrieben, dann entspricht das Ergebnis nicht der Validierungsformel (was aber nicht stimmt, weil ja beide Summen gleich sind).

Und das mit dem Rundungsfehler macht mich deshalb nachdenklich, denn wenn ich z.B. den Gesamtbetrag um 10.000,00 € auf dann 24.833,35 €, und den Bewirtungsbetrag auf 18.157,45 €, dann habe ich die gleichen Centbeträge aber erhalte diesem keinen Validierungsfehler.

Bei der DB handelt es sich um die steuerliche Erfassung von Geschenken und der VIP-Lounge. Ich weiß jetzt nicht genau wie problematisch das jetzt für die Abrechnung ist wenn wir die Beträge um 10 Cent verändern (da kann unser Controlling sicherlich was tricksen), aber mich interessiert einfach der Fehler!

Schöne Grüße

Michael

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Re: Rechenfehler
« Antwort #4 am: 20.11.09 - 15:26:14 »
Hi Michael,

du musst aufpassen wenn Du Ergebnisse nach Rechenoperationen mit Kommazahlen vergleichst.

Prüfe dochmal ab, ob die Differenzt der beiden felder > 0,001 ist ist.
Ich glaube nein.

Es kann nämlich manchmal sein, dass du bei n-ten Nachkommastelle was stehen hast (was natürlich falsch ist, aber machmmal rechnen Computer so) und dann darfst DU nicht auf "=" vergleichen.  

Grüße, Alexander
« Letzte Änderung: 20.11.09 - 15:39:42 von AC »
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Rechenfehler
« Antwort #5 am: 20.11.09 - 15:34:19 »
Es kann nämlich manchmal sein, dass du bei n-ten Nachkommastelle was stehen hast (was natürlich falsch ist, aber machmmal rechnen Computer so) und dann darfst DU noch auf "=" vergleichen. 

Zahlen werden in Notes-Items prinzipiell immer als Typ "double" abgelegt. Da das ein Gleitkommaformat ist, können solche Konvertierungsdfferenzen auftreten.


Thomas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz