Java中关于保留小数点后几位(可以四舍五入的)的方法

在实际开发中,我们相对一些除法后的结果进行简单的输出,或者定制型的显示效果,下面几种方法供参考(全文以保留两位小数为例):

一、格式化保留小数方法

1. 格式化printf输出

对于学过c语言的同学来说,这种方法见怪不怪了!
主要使用printf来格式化输出:

        double ll =len/(1024*1024.0);
        System.out.println("文件大小为"+ll+"MB");//36.364097595214844
        System.out.printf("%.2f",ll);//33.36
复制代码

2.DecimalFormat类

这种方法对于初学者来说不常用,因为这种方法牵扯到了DecimalFormat类的使用,所以不够友好

        DecimalFormat d = new DecimalFormat("#.00");
        System.out.println(d.format(ll));//36.36
复制代码

3.通过运算输出

通过计算,让小数点后移几位,保留整型,然后再除以后移的位数,所得结果是刚好想要保留的位数

  System.out.println((int)(ll*100)/100.0);//36.36
复制代码

以上不能保证四舍五入,如需四舍五入精确值,继续往下:

二、四舍五入保留2位小数为例

(1).使用BigDecimal类

下面代码中: 
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复制代码

(2).DecimalFormat类使用

#.00 表示两位小数 #.0000四位小数 以此类推…

String format = new DecimalFormat("#.0000").format(3.1415926);
System.out.println(format);
输出结果为 3.1416

复制代码

(3).String.Format方法

 %.2f 中 %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。

double num = 3.1415926;
String result = String.format("%.4f", num);
System.out.println(result);
输出结果为:3.1416

复制代码

(4).

最后乘积的0.01d表示小数点后保留的位数(四舍五入),0.0001 为小数点后保留4位,以此类推…

double num = Math.round(3.141592 * 100) * 0.01d;
System.out.println(num);
输出结果为:3.14

复制代码

如需转载,请注链接!