Rundungs-Unterschied Clipper <-> Xbase

Auf dem Weg von Clipper, FoxPro u.ä. nach Xbase++

Moderator: Moderatoren

Rundungs-Unterschied Clipper <-> Xbase

Beitragvon BJelinek » Mi, 04. Mai 2016 17:12

Hallo zusammen.

habe ein Problem mit der Rundung beim Wegschreiben in DBF-Datei

Datenbank Feld MWST1 ist Numerisch 10 mit 2 Nachkommastellen

repl MWST1 with 102.5050

ergibt in clipper 102,51
in Xbase 102,50

in der Summierung mehrer Felder gibt es dann Abweichungen.

Kann man das irgendwo Zentral beeinflussen ?
Die Hotline meint halt ich soll die round() Funktion verwenden.
Ha ha überall im programm ändern

Habt Ihr eine andere Lösung ?
Danke für Eure Mühe.
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitragvon Herbert » Fr, 06. Mai 2016 11:49

Die Frage ist, was du tatsächlich denn gespeichert haben willst? Du sendest einen um eine Dezimalstelle höheren Wert. Abschneiden, abrunden oder aufrunden ist gefragt.
In solchen Situationen wird rechts einfach abgeschnitten, weil kein Platz da ist.

Sinnigerweise müsstest du deinem mwst-Feld mehr Nachkommastellen geben (mind. 1) und gegebenenfalls bei Summenbildung erst runden.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1773
Registriert: Mi, 13. Aug 2008 23:22
Wohnort: Gmunden am Traunsee, Österreich

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitragvon Koverhage » Sa, 07. Mai 2016 8:32

Die Hotline meint halt ich soll die round() Funktion verwenden.

Eigentlich wäre das relativ einfach wenn das Schreiben an zentraler Stelle erfolgt
repl MWST1 with round(102.5050,2)
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1890
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitragvon Herbert » So, 08. Mai 2016 10:08

Klaus,
MwSt-fachlich gesehen ist dies keine Lösung. Falls du mehrere Posten hast, macht es Sinn erst die Summe der relevanten Posten zu runden und nicht die einzelnen Detailposten.
Daher mein Einwand, dem Datenfeld mehr Nachkommastellen zu geben.
Ich weiss aber nicht, ob diese MwSt da bereits eine Endsumme darstellt oder nicht.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1773
Registriert: Mi, 13. Aug 2008 23:22
Wohnort: Gmunden am Traunsee, Österreich

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitragvon Koverhage » Mo, 09. Mai 2016 6:13

Herbert,

Ich weiss aber nicht, ob diese MwSt da bereits eine Endsumme darstellt oder nicht.


genau das wissen wir beide nicht ;-)

Daher mein Einwand, dem Datenfeld mehr Nachkommastellen zu geben.

Dies nützt nichts wenn auf der rechnung, etc. die einzelnen Positionen mit Netto und Brutto dargestellt werden.
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1890
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitragvon BJelinek » Mo, 09. Mai 2016 16:04

Danke für die Antworten.

Es geht primär nicht um MWST, da ist es halt im Mischbetrieb aufgefallen.
Ich hätte besser ein Feld TEST_NUM genommen, um keine MWSt Diskussion zu entfachen.

Es geht einfach um den Unterschied Clipper <-> Xbase beim Befüllen
von Numerischen Feldern in DBF-Dateien.

Bisher musste dies nicht berücksichtigt werden. Habe es auch nicht unter Unterschiede
Clipper <-> Xbase gefunden.
Klar, wenn man es weiß, muss ich in Zukunft dies berücksichtigen und selber runden.
z.B. mit einer eigenen REPL Funktion.

Ich hatte gehofft, dass es so etwas wie GETSYS.PRG gibt, in der man die Rundung hätte
einbauen können, oder Einfluss auf den DBF-Treiber nehmen.

Wie verhält es sich eigentlich bei anderen Datenbanken ? SQL Foxpro ...
Gruß
Bernd
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 54
Registriert: Sa, 02. Jun 2012 19:57
Wohnort: 73257 Köngen

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitragvon Herbert » Mo, 09. Mai 2016 16:21

Ich erwarte generell ein Abrunden.
Aber es ist sicher schlecht, das DB-System entscheiden zu lassen, was nun sein soll. Also mach ein ROUND oder eben keins.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1773
Registriert: Mi, 13. Aug 2008 23:22
Wohnort: Gmunden am Traunsee, Österreich

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitragvon brandelh » Di, 10. Mai 2016 10:17

Mir ist der Rundungsunterschied tatsächlich nie aufgefallen ;-)

Bei einem früheren Programm das Zinsen pro Monat aufsummieren muss trat aber ein ähnliches Problem auf, die interne Variable und der Ausdruck stimmten nicht überein ...
Also das was auf dem Papier gedruckt (gerundet) wurde und die Endsumme die unten dann gedruckt wurde.

Hier musste ich in jeder Zeile die Summe um die gerundeten Zinsen erhöhen, nicht die einfach berechneten.
Wenn die Rundung beim Speichern nicht stimmt, muss man selbst runden.

Bei einer SQL Anweisung würde man schon gerundete Werte übergeben !
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitragvon Herbert » Di, 10. Mai 2016 10:53

brandelh hat geschrieben:Bei einer SQL Anweisung würde man schon gerundete Werte übergeben !

Das müsstest doch auch programmieren? Oder sehe ich da was falsch?
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1773
Registriert: Mi, 13. Aug 2008 23:22
Wohnort: Gmunden am Traunsee, Österreich


Zurück zu Migration

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast