sql >> Database >  >> NoSQL >> MongoDB

MongoDB - Hoe zit het met het decimale type waarde?

Als u een exacte weergave wilt voor financiële doeleinden, dan zijn verdubbelingen of drijvende-kommawaarden niet geschikt, omdat de fractionele delen onderhevig zijn aan afrondingsfouten. Bepaalde decimale waarden kunnen niet worden weergegeven met binaire drijvende komma's en moeten worden benaderd.

Voor een minder technische inleiding, zie Het probleem met het afronden van getallen met drijvende komma; als je een beetje gek wilt worden, lees dan wat elke computerwetenschapper moet weten over drijvende-komma-rekenkunde.

De aanbeveling om een ​​geheel getal te gebruiken (waarbij de waarde in centen wordt opgeslagen) is om mogelijke afrondingsfouten te voorkomen. Deze benadering wordt in de MongoDB-documentatie voor het modelleren van monetaire gegevens beschreven als "Een schaalfactor gebruiken" en is een algemene tijdelijke oplossing voor MongoDB 3.2 en eerder.

MongoDB 3.4 bevat een nieuw Decimaal BSON-type dat exacte precisie biedt voor het manipuleren van monetaire gegevensvelden.



  1. Mongoose dubbele sleutelfout met upsert

  2. $uitgeschakeld is leeg. U moet een veld als volgt specificeren:{$unset:{<field>:...}}

  3. MongoDB bewaken en beveiligen met ClusterControl-adviseurs

  4. Hoe bewaar/toon ik alinea's met mongodb?