Hinweise zum neuen Forum
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Rundungs-Unterschied Clipper <-> Xbase

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

Moderator: Moderatoren

Antworten
Benutzeravatar
BJelinek
UDF-Programmierer
UDF-Programmierer
Beiträge: 61
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen

Rundungs-Unterschied Clipper <-> Xbase

Beitrag von BJelinek » Mi, 04. Mai 2016 18: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
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1790
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitrag von Herbert » Fr, 06. Mai 2016 12: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
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1922
Registriert: Fr, 23. Dez 2005 9:00
Wohnort: Aalen
Kontaktdaten:

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitrag von Koverhage » Sa, 07. Mai 2016 9: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
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1790
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitrag von Herbert » So, 08. Mai 2016 11: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
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1922
Registriert: Fr, 23. Dez 2005 9:00
Wohnort: Aalen
Kontaktdaten:

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitrag von Koverhage » Mo, 09. Mai 2016 7: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
BJelinek
UDF-Programmierer
UDF-Programmierer
Beiträge: 61
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitrag von BJelinek » Mo, 09. Mai 2016 17: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
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1790
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitrag von Herbert » Mo, 09. Mai 2016 17: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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13588
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim
Kontaktdaten:

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitrag von brandelh » Di, 10. Mai 2016 11: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
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1790
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Rundungs-Unterschied Clipper <-> Xbase

Beitrag von Herbert » Di, 10. Mai 2016 11: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...

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast