Rundungs-Unterschied Clipper <-> Xbase
Moderator: Moderatoren
- BJelinek
- Rekursionen-Architekt
- Beiträge: 221
- Registriert: Sa, 02. Jun 2012 20:57
- Wohnort: 73257 Köngen
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 3 Mal
Rundungs-Unterschied Clipper <-> Xbase
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.
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.
Grüße
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Rundungs-Unterschied Clipper <-> Xbase
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.
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...
Immer in Bewegung...
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Rundungs-Unterschied Clipper <-> Xbase
Eigentlich wäre das relativ einfach wenn das Schreiben an zentraler Stelle erfolgtDie Hotline meint halt ich soll die round() Funktion verwenden.
repl MWST1 with round(102.5050,2)
Gruß
Klaus
Klaus
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Rundungs-Unterschied Clipper <-> Xbase
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.
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...
Immer in Bewegung...
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2471
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Rundungs-Unterschied Clipper <-> Xbase
Herbert,
genau das wissen wir beide nichtIch weiss aber nicht, ob diese MwSt da bereits eine Endsumme darstellt oder nicht.
Dies nützt nichts wenn auf der rechnung, etc. die einzelnen Positionen mit Netto und Brutto dargestellt werden.Daher mein Einwand, dem Datenfeld mehr Nachkommastellen zu geben.
Gruß
Klaus
Klaus
- BJelinek
- Rekursionen-Architekt
- Beiträge: 221
- Registriert: Sa, 02. Jun 2012 20:57
- Wohnort: 73257 Köngen
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 3 Mal
Re: Rundungs-Unterschied Clipper <-> Xbase
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 ...
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 ...
Grüße
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Bernd
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Rundungs-Unterschied Clipper <-> Xbase
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.
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...
Immer in Bewegung...
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Rundungs-Unterschied Clipper <-> Xbase
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 !
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
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Rundungs-Unterschied Clipper <-> Xbase
Das müsstest doch auch programmieren? Oder sehe ich da was falsch?brandelh hat geschrieben:Bei einer SQL Anweisung würde man schon gerundete Werte übergeben !
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...