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

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

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

我将一些数据存储在数据库中,并使用游标读取这些数据.所有数据均为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);
总结

以上是内存溢出为你收集整理的Android数字格式以某种方式错误的,而不是3.5,我得到3.499999999,为什么?全部内容,希望文章能够帮你解决Android数字格式以某种方式是错误的,而不是3.5,我得到3.499999999,为什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1094361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存