据我所知,JavaScript使用IEEE 754浮点数来处理实数。 问题使用时发生,这是相当常见的问题:MongoDB浮点值精度?
0.1 + 0.2 = 0.30000000000000004
大多数的时间,使用像“big.js”的模块,但使用时问题MongoDB的。
看看这个文件:
{ “_id”:物件( “58ff8f721bbfbcd140e472b3”), “值”:0.1}
当我运行$ INC。是这样的:
db.dec.update({_id:ObjectId('58ff8f721bbfbcd140e472b3')},{$ inc:{value:0.2}});
结果都不好:
{ “_id”:物件( “58ff8f721bbfbcd140e472b3”), “值”:0.30000000000000004}
我知道为什么它的发生,但有没有办法避免这个问题?
这是为什么这是你的问题? – Thomas
@Thomas因为我正在处理货币 – modernator
对我来说这听起来像格式化问题,而不是数字系统的问题。选中这个:'var nr = .1 + .2; console.log(nr,nr.toLocaleString(“en”,{style:“currency”,currency:“USD”}))'[Number#toLocaleString()](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString) – Thomas