mongo的浮点型精度问题

qq_34858601 2016-06-18 08:44:29
最近用mongo,分组求和后,100+755.66 = 855.6599999999。 直接在mongo里计算也是这个结果,真是郁闷。。大家有什么解决方案么?还是说在前台展现的时候,处理下精度啊?
...全文
326 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
R_128 2017-04-13
  • 打赏
  • 举报
回复
嗯嗯,别郁闷,多参考一下别人是怎么处理的,可能就豁然开朗了,以下是我查找到的相关内容的论坛连接网址,你看看吧:http://forum.foxera.com/mongodb/topic/385/mongo%E7%9A%84%E6%B5%AE%E7%82%B9%E5%9E%8B%E7%B2%BE%E5%BA%A6%E9%97%AE%E9%A2%98 ?un=xxx
小灸舞 2016-06-18
  • 打赏
  • 举报
回复
这是浮点数机制决定的。所有系统的浮点数只要是按IEEE浮点数标准来的,都是这个样子。少数语言在显示的时候做了处理,比如PHP。其他平台就需要自己处理下。
不只是mongo,大部分的数据库都存在这个问题,各种合计都会有误差,为此有一个数据类型叫Decimal,使用文本存放数字,数据库合计之类的就没有误差了。当然程序中也要有这个数据类型,然后操作各种蛋痛各种不直观。
替代的方案是直接用int,以分为单位而不是以元为单位。当然前台显示时要各种处理,反正就没一个简洁的方案。

1,746

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧