我知道,JavaScript使用IEEE754浮点数来处理实数。使用它时会出现问题,这是很常见的问题:
0.1 + 0.2 = 0.30000000000000004
大多数情况下,使用像'big.js‘这样的模块,但问题是在使用MongoDB时。
请看这份文件:
{ "_id“:ObjectId(”58ff8f721bbfbd140e472b3“),”值“:0.1 }
当我像这样运行$inc时:
db.dec.update({ _id: ObjectId(‘58ff8f721bbfbd140e472b3’) },{ $inc:{值: 0.2 });
结果一点也不好:
{ "_id“:ObjectId(”58ff8f721bbfbd140e472b3“),”值“:0.30000000000000004 }
我知道为什么会这样,但有什么办法可以避免这个问题吗?
发布于 2017-04-25 19:06:22
如果你确切知道你想要的小数位数,你可以做Number((.1+.2).toFixed(1))。或者,您可以为mongodb (如猫鼬 )使用orm,为数据库文档定义模型,并使用模型中的一些代码定义所需的精度。
https://stackoverflow.com/questions/43618036
复制相似问题