之前用mysql的时候发现如果存入一个浮点数,比如说 4.5,存进去再读出来就变成了类似”4.499999999999987“这样的的数字
现在用mongoDB,发现存进去4.5,读出来还是4.5,这么说我可以相信这种情况是一定存在的吗?还是说并不保证我存进去的数和读出来的数是一样的
mongodb 所采用的 bson 中 double 的是 64-bit 的,因为采用了 IEEE 754-2008 标准,所有实际效果会比一般程序的浮点数计算效果要好,不过因为精度仍然是有限的,所有仍然不要相信这个浮点数是可信的。
不过你可以得到保障的是,你存进去的数读出来还是一样的,但是你要注意的是,存进去的时候,可能就已经和你原来想要的值出现了偏差。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。