Decimal128 (Decimal de Alta Precisão)

Última atualização: 2026-10-09

Decimal128 (Decimal de Alta Precisão)

Decimal128 é o tipo decimal de alta precisão do MongoDB, baseado no padrão de ponto flutuante decimal IEEE 754-2008, com 34 dígitos decimais significativos. Ele serve para dinheiro, taxas e outros dados que precisam de aritmética exata, evitando os erros de arredondamento binário do Double. Construa com `Decimal128('19.99')` ou o atalho do mongosh 5.0+ `NumberDecimal('19.99')`.

CategoriaTipos BSON
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

Decimal128("<decimal string>")
NumberDecimal("<decimal string>")  // mongosh 5.0+
{ price: Decimal128("19.99") }

Retorno:Retorna um valor BSON Decimal128

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// Decimal128: constrói e faz correspondência exata
use shop
db.prices.insertOne({ item: 'apple', price: Decimal128('19.99') })
db.prices.find({ price: { $eq: Decimal128('19.99') } })

Saída:

{ _id: ObjectId('...'), item: 'apple', price: Decimal128('19.99') }

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre Decimal128 e Double?
ADouble é ponto flutuante binário onde 0.1 é inexato; Decimal128 armazena dígitos decimais (34 significativos) para matemática de dinheiro exata.
QQuão grande um valor Decimal128 pode ser?
AA faixa de expoente é aproximadamente ±6143 e a faixa de valor cerca de ±9.99×10^6144 — além de qualquer necessidade de negócio.
QPor que armazenar preços como Decimal128?
ADinheiro precisa de aritmética decimal exata; somas com Double divergem (ex.: 0.30000000000000004), quebrando a reconciliação.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%