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);
标签:android,rounding,format,numbers 来源: https://codeday.me/bug/20191011/1895032.html