Probleme mit der Übernahme von Werten in eine Tabelle Office 365

Hallo,
Ich habe ein Problem beim eingeben von Daten in ein Formular mit Unterformular.
Die ganze Datenbank hat nur 2 Tabellen
„Kunden“ mit Kundennamen
„Rechnung“ mit Datum und Betrag
Das ganze ist so einfach gehalten um jemandem zu erklären wie SQL Abfragen funktionieren.
Die Tabellen stehen in Beziehung über Kunde.ID nach Rechnung!KundeID. So weit so einfach.

Nun habe ich ein Formular erstellt bei dem es ein Hauptformular gibt das auf die Tabelle „Kunden“ referenziert und ein Unterformular das direkt die Tabelle „Rechnung anzeigt“. Verbunden sind diese über die Beziehung wie oben. Alles ist gut und Funktioniert. War ja auch nicht schwierig bis jetzt.

Wenn ich aber im Unterformular einen Betrag eingebe z.B. 3,3 dann speichert die Tabelle 3,299999875 wenn ich 3,5 eingebe speichert sie 3,5000000. Dabei ist es unerheblich ob der Datentyp von „Betrag“ Double oder Single ist. Auch die Formatierung „Currency“ habe ich nicht benutzt.

Hat dafür evtl jemand eine Erklärung und vlt auch eine Lösung?

Freundliche Grüße
Frank

Die Formatierung ist nur für die Anzeige, aber nicht die Speicherung der Daten. Du musst den Datentyp des Feldes ändern, wenn sich das auf die Speicherung auswirken soll.

Das genannte Phänomen ist ein Seiteneffekt der FloatingPoint-Arithmetik. Diese hat eine prinzipbedingte Ungenauigkeit. Darauf basierend sowohl Single- als auch Double-Datentyp. Wenn Du den Datentyp auf Currency stellst, sollte das Problem behoben sein.

2 Like

Danke, das hat geholfen. Das erklärt aber auch das einige meiner Datenbanken kleine Abweichungen aufweisen da sie Gewichte mit mit einigen Nachkommastellen speichern. Da muss man wahrscheinlich dazu übergehen diese Werte in Mikrogramm in die Tabelle zu schreiben und dann bei der Ausgabe für den Benutzer diese Werte entsprechend umrechnen.

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Nachrichten mehr erlaubt.