微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android数字格式以某种方式是错误的,而不是3.5,我得到3.499999999,为什么?

我将一些数据存储在数据库中,并使用游标读取这些数据.所有数据均为56.45,3.04,0.03类型,因此小数点后有两个数字.现在我想对它们求和,但这似乎并不容易…我通过c.getDouble(3)获得了这些数字,然后将其添加到sum变量中,如下所示:

sum+= c.getDouble(4) * multi

multi是1到100之间的整数.现在我的问题是,在获得sum变量后,我得到了一个像59.51999999999999999的数字.我没有发布代码,但是除了string.valueOf之外没有任何转换,可以使数字出现在我的小部件上.那么有人经历过吗?根据我的计算,应该是59.52,但是我得到的数字是99999 …为什么会这样? (用Math.round()不能正常工作的有趣的事情,即使我设置(sum)* 100/100,我也得到59.0.
提前致谢!

解决方法:

另一种方法是,可以将sum变量定义为double,然后可以为sum变量设置NumberFormat.

例:

double sum = 21.2015;
NumberFormat formatter = new DecimalFormat("#.##");
formatter.format(sum);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐