1.android中怎样解决double类型数据*运算结果的位数?比如3.2*3应该为9.6,但是他输出的结果为9.6000000000001。这是因为没有给结果加一个范围
double a = 3.2;
double b = 3;
NumberFormat.getInstance().format(a*b); 系统缺省默认范围
2.double 类型保留位数
方法一 DecimalFormat df = new DecimalFormat(".00");
//.00就表示保留后两位数
System.out.println(f.format(x/y).toString());//调用f.format(x/y)并转换成字符串就行啦
方法二
double num1 =10;
double num2 = 3;
那么num1/num2=3.3333333333....
我们怎样才能做到保留到第几位呢?
在转换为字符串时巧用#和0进行控制
格式:(num1/num2).toString("#.00") 表示保留两位小数
(num1/num2).toString("#.000") 表示保留三位小数,但注意如果小数点后面第三位上没有数字,则第三位也显示,但该位置显示值为0,如3.140
(num1/num2).toString("#.00#") 也表示保留三位小数,但注意如果小数点后面第三位上没有数字,则第三位不显示,只是显示到第二位,如3.14
同时注意:double类型数字3.14
toString("0#.00") ===》显示值为:03.14
toString("##.00") ===》显示值为:3.14
总结:#===》如果#代表的该位置没有数字,则为空
0===》如果0代表的该位置没有数字,则用0代替该位置上的数字
方法三