Jeśli chcesz uzyskać dokładną reprezentację do celów finansowych, wartości podwojone lub zmiennoprzecinkowe są nieodpowiednie, ponieważ części ułamkowe podlegają błędom zaokrąglania. Niektóre wartości dziesiętne nie mogą być reprezentowane za pomocą liczb zmiennoprzecinkowych opartych na systemie binarnym i muszą być aproksymowane.
Aby zapoznać się z mniej technicznym wprowadzeniem, zobacz Problem z zaokrąglaniem liczb zmiennoprzecinkowych; jeśli chcesz się bawić, przeczytaj Co każdy informatyk powinien wiedzieć o arytmetyce zmiennoprzecinkowej.
Rekomendacją stosowania typu liczb całkowitych (przechowywanie wartości w centach) jest uniknięcie potencjalnych błędów zaokrąglania. To podejście jest opisane jako „Używanie współczynnika skali” w dokumentacji MongoDB do modelowania danych pieniężnych i jest ogólnym obejściem dla MongoDB 3.2 i wcześniejszych.
MongoDB 3.4 zawiera nowy typ Decimal BSON, który zapewnia dokładną precyzję manipulowania polami danych pieniężnych.