mongodb乘法聚合运算符

时间:2017-06-19 09:47:19

标签: mongodb aggregation-framework

说我有以下聚合:

 db.a.aggregate(
   [
     { $project: {  total: { $multiply: [ 4533, 0.0001 ] } } }
   ]
)

此汇总的输出 0.45330000000000004 ,显然应 0.4533 。这是聚合框架中的错误吗?

1 个答案:

答案 0 :(得分:1)

好的,然后我建议使用enter image description here进行乘法运算,但基本上只需链接$trunc$multiply就可以了。

db.a.aggregate(
   [
     { "$project": {  
       "total": {
         "$divide": [ 
           { "$multiply": [
             { "$multiply": [ 4533, 0.0001 ] },
              10000
           ]},
           10000
         ]
       } 
     }}
   ]
)

或只是$divide这就是你的意思:

db.a.aggregate([
  { "$project": { "total": { "$divide": [ 4533, 10000 ] } } }
])

两者都会给你:

{  "total" : 0.4533 }

如上所述,浮点数学和舍入没有什么新鲜事,作为一般课程,你应该避免使用,只需应用你实际意思的“非浮点”版本。

如果你有一段时间的长时间阅读是$divide