Geld in einer Dezimalspalte speichern: Überlegungen zu Präzision und Skalierung
Datenbankdesigner stehen oft vor dem Dilemma, die richtige Genauigkeit und Skalierung für Dezimalzahlen auszuwählen Spalten, die zum Speichern von Geldwerten verwendet werden. Dieser Artikel untersucht die damit verbundenen Überlegungen und bietet Einblicke in die optimalen Werte für verschiedene Szenarien.
Präzision und Skalierbarkeit für effiziente Speicherung
Char-Spalten mit fester Breite können zwar Effizienz bieten Vorteile: Auch Dezimalspalten haben ihre Vorteile. Es stimmt jedoch nicht unbedingt, dass die Speicherung umso effizienter ist, je geringer die Präzision und der Maßstab sind.
Empfohlene Präzision und Maßstab
Für den allgemeinen Gebrauch gilt DECIMAL(19, 4) ist eine allgemein akzeptierte Wahl. Dies ergibt sich aus dem historischen Währungsdatentyp in VBA/Access/Jet und der Notwendigkeit, Bankrundungen zu unterstützen, die benutzerdefinierte Rundungsalgorithmen ermöglichen.
Übertrieben oder nicht genug?
DECIMAL(24,8) mag für die meisten Währungsanwendungen übertrieben erscheinen, da die meisten Währungen mit vier oder fünf Dezimalstellen angegeben werden. In Szenarien, in denen eine erweiterte Präzision erforderlich ist, empfiehlt es sich, stattdessen Gleitkommatypen in Betracht zu ziehen, da diese einen größeren Wertebereich verarbeiten können.
Buchhaltungsregeln und Überlegungen
An Um Genauigkeit und Compliance zu gewährleisten, ist es wichtig, sich an Fachexperten und Buchhaltungsstandards zu wenden. Verschiedene Gerichtsbarkeiten können spezifische Vorschriften bezüglich der Rundung und Genauigkeit von Geldbeträgen haben. Beispielsweise kann bei innerstaatlichen Überweisungen in der EU die Verwendung von DECIMAL(p,6) für die Speicherung erforderlich sein.
Vermeiden Sie den MONEY-Datentyp von SQL Server
Der MONEY-Datentyp in SQL Server gibt es bekannte Probleme mit der Genauigkeit und Rundung. Stattdessen wird die Verwendung eines DECIMAL-Datentyps für optimale Präzision und Portabilität empfohlen.
Historischer Hintergrund zur Bankrundung
Die Bankrundung wird in der Informatik häufig verwendet, weil sie es ist in IEEE-Standards verankert und von Mathematikern bevorzugt. Es wird oft als „die Regel des Computers“ bezeichnet und hat seinen Ursprung in menschlichen Rechenpraktiken.
Das obige ist der detaillierte Inhalt vonWelche Genauigkeit und Skalierung sollte ich zum Speichern von Geld in einer Dezimalspalte verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!