mongodb乘法聚合问题


  • 註冊用戶

    我有以下聚合:

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

    此汇总的输出值为0.45330000000000004 ,但其实应该为0.4533 

    请问这是什么问题呢


  • Lv 1

    @sevengong

    浮點數精準度問題


  • Lv 1

    不只是mongo,大部分的資料庫都存在這個問題,各種合計都會有誤差,為此有一個資料類型叫Decimal,使用文本存放數位,資料庫合計之類的就沒有誤差了。

    這是浮點數機制決定的。所有系統的浮點數只要是按IEEE浮點數標準來的,都是這個樣子。少數語言在顯示的時候做了處理,比如PHP。其他平臺就需要自己處理下

    請參考:

    本帖下載内容已隐藏,请登入以查看隐藏内容!


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待