为什么保存在mongo里的数是两位,拿出来以后变成了很多位呢??求解

如题,求老铁们帮帮我,我没搞懂。。。。
图片说明

图片说明

不只是mongo,大部分的数据库都存在这个问题,各种合计都会有误差,为此有一个数据类型叫Decimal,使用文本存放数字,数据库合计之类的就没有误差了。当然程序中也要有这个数据类型,然后操作各种蛋痛各种不直观。替代的方案是直接用int,以分为单位而不是以元为单位。当然前台显示时要各种处理,反正就没一个简洁的方案。

这是浮点数精度问题,在java本身做浮点计算也这样,丢失精度。如果是算钱的话,你要用分为单位,存整型,不要存double

浮点数精度问题,要是不介意,你可以数据库里面存varchar或者字符型,拿出来就和你存进去的一样了。只是有点不太方便计算。

要精确可以在数据库用varchar(n),然后你这边用BigDecimal big = new BigDecmal("你的小数");进行计算,这样两边都是准确的。