赞
踩
在实际开发中,我们相对一些除法后的结果进行简单的输出,或者定制型的显示效果,下面几种方法供参考(全文以保留两位小数为例):
对于学过c语言的同学来说,这种方法见怪不怪了!
主要使用printf来格式化输出:
double ll =len/(1024*1024.0);
System.out.println("文件大小为"+ll+"MB");//36.364097595214844
System.out.printf("%.2f",ll);//33.36
这种方法对于初学者来说不常用,因为这种方法牵扯到了DecimalFormat类的使用,所以不够友好
DecimalFormat d = new DecimalFormat("#.00");
System.out.println(d.format(ll));//36.36
通过计算,让小数点后移几位,保留整型,然后再除以后移的位数,所得结果是刚好想要保留的位数
System.out.println((int)(ll*100)/100.0);//36.36
以上不能保证四舍五入,如需四舍五入精确值,继续往下:
下面代码中:
public BigDecimal setScale(int newScale, int roundingMode)
// newScale 为小数点后保留的位数, roundingMode 为变量进行取舍的方式;
BigDecimal.ROUND_HALF_UP 属性含义为为四舍五入
double f = 3.1415;
BigDecimal bd = new BigDecimal(f);
double f1 = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
输出结果f1为 3.14;
#.00 表示两位小数 #.0000四位小数 以此类推…
String format = new DecimalFormat("#.0000").format(3.1415926);
System.out.println(format);
输出结果为 3.1416
%.2f 中 %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。
double num = 3.1415926;
String result = String.format("%.4f", num);
System.out.println(result);
输出结果为:3.1416
最后乘积的0.01d表示小数点后保留的位数(四舍五入),0.0001 为小数点后保留4位,以此类推…
double num = Math.round(3.141592 * 100) * 0.01d;
System.out.println(num);
输出结果为:3.14
如需转载,请注链接!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。