Double (倍精度浮動小数点数)
最終更新:2026-10-09
Double (倍精度浮動小数点数)
Double は MongoDB のデフォルトの数値型で、64ビットの IEEE 754 浮動小数点数、およそ ±1.8×10^308 です。mongosh の裸の数値(3.14 など)はデフォルトで Double になります。測定値、パーセンテージ、座標に使い、正確でなければならない金額には Decimal128 を選びます。
| カテゴリ | BSON 型 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ price: 3.14 } // bare literal is Double
NumberDouble(3.14) // explicit
{ price: { $lt: 10.5 } }
戻り値:Double の BSON 浮動小数点を返します
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// Double: 比較とアグリゲーション
use shop
db.products.find({ price: { $gte: 9.99 } })
db.products.aggregate([{ $group: { _id: null, avg: { $avg: '$price' } } }])
出力:
// price >= 9.99 の商品と、平均価格を返す
📌 注意事項
- Double では 0.1+0.2 != 0.3。金額には Decimal128 を使う
- mongosh では裸の整数 42 も Double
- $eq は Double と Int32 に一致しない。$convert で変換する
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
QDouble か Decimal128 か?
A測定値や座標などの近似計算には Double。正確な十進の金額には Decimal128 を使います。
Qmongosh で 42 は何型ですか?
ADouble です。整数が必要なら Int32(42) または Long(42) を使います。
QDouble の有効数字は何桁ですか?
Aおよそ15〜17桁の有効十進数字です。それを超えると二進で丸められます。