AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Geldbeträge und die Datenbank

Ein Thema von TurboMagic · begonnen am 24. Sep 2023 · letzter Beitrag vom 25. Sep 2023
Antwort Antwort
Seite 1 von 2  1 2      
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.827 Beiträge
 
Delphi 12 Athens
 
#1

Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 18:58
Hallo,

ich habe gerade das Problem, dass meine Kassensoftware mit dem Datentyp Currency Arbeitet,
die Felder in der DB auch so sind und der entsprechend alles mit 4 Nachkommastellen abspeichert.

Wenn man aber davon ausgeht, dass man 2 Nachkommastellen haben sollte und darauf ggf. runden
sollte passt das ja nicht so ganz zusammen. Da gibt's dann immer mal wieder Abweichungen im
Centbereich.

Wie ist denn da korrekterweise (für Deutschland) vorzugehen?
Vor dem Schreiben der Daten in die DB kaufmännisch auf 2 Nachkommastellen runden?
Mit welcher Rundungs Funktion? Math.RoundTo?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#2

AW: Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 19:11
Ob Currenty oder Flioeßkommazahl ist dabei egal.
Es passiert auch, wenn du z.B. die Steuern ein-/ausrechnest.


Wie gerundet wird, nennt sich "kaufmännisches Runden". (nicht arithmetisches Runden)

Und wie aktuell gerundet wird, kann man entsprechend umstellen, falls es nicht das Standardverhalten sein sollte.
https://docwiki.embarcadero.com/RADS...eitkommawerten
Delphi-Referenz durchsuchenSetRoundMode
SetFPURoundMode

Das Runden selber ist aber nicht das Problem, sondern wie man mit diesem Rundungscent umgeht,
sowie wann gerundet werden muß.
z.B. könnte man erst die Einzelpositionen runden und dann zusammenrechnen, oder erst zusammenrechnen und dann Runden.



Wiki sagt zwar was,
https://de.wikipedia.org/wiki/Rundung
aber bezüglich des Bei Google suchenRundungscent sah ich da nichts.

Vielleicht helfen andere?
https://hilfe.sevdesk.de/de/knowledg...ettorechnungen
https://easywerkstatt.com/rundungsfe...ei-rechnungen/

Im Notfall eher zu Gunsten des Kunden runden, da sollte es weniger Probleme geben, falls sich wer beschwert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Sep 2023 um 19:17 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.827 Beiträge
 
Delphi 12 Athens
 
#3

AW: Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 19:30
Naja, zugunsten des Kunden runden könnte Ärger mit dem Finanzamt geben...
Es ist halt die Frage, ob mit 4 Nachkommastellen in der DB speichern und erst bei der Ausgabe runden oder gleich wenn die Daten entstehen?
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.827 Beiträge
 
Delphi 12 Athens
 
#4

AW: Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 19:33
Übrigens: die Uhrzeit auf dem Server hier hinkt 1h hinterher...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#5

AW: Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 19:37
Nja, wenn du speicherst dann besser das Endergebnis gerundet,
denn es wäre blöd, wenn du etwas verstellst und die Finanztype sich bei der nächsten Buchprüfung beschwert,
wenn ein anderes Ergebnis rauskommt, als irgendwann mal ausgedruckt/verschickt.

Ich weiß leider grade nicht, wie es bei uns gemacht wird, da andere immer damit rumkämpfen
und das regelmäßig.



Wenn Ausgeloggt, dann gibt es eine Standardeinstellung und ich glaub die war ohne Sommer-/Winterzeit, oder so

und wenn eingeloggt, dann hast du es in deinem Profil falsch eingestellt
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Sep 2023 um 19:40 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.827 Beiträge
 
Delphi 12 Athens
 
#6

AW: Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 19:44
Kann im DP Nutzerprofil keine Zeitzonen Einstellung finden...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#7

AW: Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 19:50
https://www.delphipraxis.net/profile...eobj_uopt_date
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.827 Beiträge
 
Delphi 12 Athens
 
#8

AW: Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 20:13
Ah! Der Server weiß wohl nix von Sommerzeit. Manuell umstellen ist mir aber zu müßig...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#9

AW: Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 20:27
Die ist ja auch abgeschaft worden beinah sein wollen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.352 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Geldbeträge und die Datenbank

  Alt 24. Sep 2023, 22:17
Es ist halt die Frage, ob mit 4 Nachkommastellen in der DB speichern und erst bei der Ausgabe runden oder gleich wenn die Daten entstehen?
Ich würde sofort runden, wenn die Daten nicht mehr weiter zur Berechnung benötigt werden.

Insbesondere hast du ansonsten das Problem, dass du bei Summen in der Datenbank andere Werte bekommst als die, die auf der Rechnung stehen. Wenn die Werte pro Zeile gerundet gespeichert sind, gibt es auch keine relevanten Rundungsdifferenzen mehr, weil die Datentyp-Ungenauigkeit einfach viel geringer ist, zumindest wenn man mit ausreichend Nachkommastellen speichert. Bei Currency und nur 4 Nachkommastellen im Speicher könnte das problematischer sein, das müsste man genauer anschauen.

Wenn man aber davon ausgeht, dass man 2 Nachkommastellen haben sollte und darauf ggf. runden
sollte passt das ja nicht so ganz zusammen. Da gibt's dann immer mal wieder Abweichungen im
Centbereich.
Hast du vielleicht ein Beispiel? Die Differenzen können ja an verschiedenen Stellen entstehen und je nachdem wie du rechnest, müsste man an anderen Stellen ansetzen. Entscheidend ist auf jeden Fall, dass immer zeilenweise Brutto = Netto + Steuer passt und es da keine Differenzen gibt.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz