MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB – Was ist mit dem Werttyp „Dezimal“?

Wenn Sie aus finanztechnischen Gründen eine exakte Darstellung wünschen, sind Doppel- oder Fließkommawerte ungeeignet, da die Nachkommastellen einem Rundungsfehler unterliegen. Bestimmte Dezimalwerte können nicht mit binärbasierten Gleitkommazahlen dargestellt werden und müssen angenähert werden.

Eine weniger technische Einführung finden Sie unter Das Problem mit dem Runden von Gleitkommazahlen; Wenn Sie es wissen wollen, dann lesen Sie Was jeder Informatiker über Gleitkommaarithmetik wissen sollte.

Die Empfehlung, einen Integer-Typ (Speicherung des Werts in Cent) zu verwenden, besteht darin, mögliche Rundungsfehler zu vermeiden. Dieser Ansatz wird in der MongoDB-Dokumentation zur Modellierung monetärer Daten als „Using a Scale Factor“ beschrieben und ist eine allgemeine Problemumgehung für MongoDB 3.2 und früher.

MongoDB 3.4 enthält einen neuen Decimal BSON-Typ, der eine exakte Genauigkeit für die Bearbeitung von Währungsdatenfeldern bietet.