$round (丸め)
最終更新:2026-10-09
$round (丸め)
$round は数値を丸め、任意で小数点以下の桁数を指定できます。値と任意の桁数引数を取り、0 または省略で整数に、正の桁数で小数を残し、負の桁数で 10 の位・100 の位などに丸めます。金額、スコア、表示用の値の正規化に使われます。末尾の .5 は 0 から離れる方向に丸めます(2.5 は 3、-2.5 は -3)。$trunc との違いは負の数と .5 の境界でのみ現れます。いずれかの引数が null または欠落していると null を返します。
| カテゴリ | 数学 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $round: [ <value>, <place> ] }
⚙️ パラメータ
| 数値 | 数値、または数値に解決される式。 |
|---|---|
| 位置 | 任意の小数点以下の桁数。0 または省略時は整数に丸め、負の値は十の位以上に丸めます。 |
戻り値:四捨五入した値。null または欠落している場合は null
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $round: 金額を小数第2位に丸める
db.orders.aggregate([
{ $project: {
rounded: { $round: ['$price', 2] }
} }
])
出力:
{ '_id': 1, 'rounded': 19.99 }
{ '_id': 2, 'rounded': 12.35 }
📌 注意事項
- .5 は 0 から離れる方向に丸める。したがって -2.5 は -3 になる
- 負の桁数は 10 の位・100 の位に丸める。例: $round: [123, -1] は 120
- $trunc と比較すると、$round は負の小数を繰り上げ、$trunc は単に切り捨てる
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$round と $trunc の違いは?
A$round は .5 で 0 から離れる方向に丸め、$trunc は 0 方向に切り捨てます。違いは負の数で現れます。
Q$round で 10 の位に丸めるには?
A桁数に -1 を渡します。$round: [123, -1] は 120 になります。
Q$round は -2.5 に何を返しますか?
A-3 です。.5 は 0 から離れる方向に丸めるからです。