Java:double类型保留两位小数

2026-03-05 07:19:55

1、下面是五种处理方法,使double类型的数据保留2位小数。

2、/*具体代码*/

import java.math.BigDecimal;

import java.math.RoundingMode;

import java.text.DecimalFormat;

public class Test {

    double[] num = {3.4567, 3, 0.4567, 2343.333, 133, 3.1415};

    public void func() {

        int i = 1;

        for(double d:num){

            System.out.println("测试"+(i++)+" = "+d);

            String dstr = String.valueOf(d);

            // 第一种:

            java.text.DecimalFormat df = new java.text.DecimalFormat("#.##");

            System.out.println("第一种="+df.format(d));

            // 第二种:通过下面的结果可以看出,一二两种都可以,第一种如果小数部分是0的话就只显示整数,第二种始终显示两位小数

            BigDecimal bd = new BigDecimal(dstr);

            bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);

            System.out.println("第二种="+bd);

            // 第三种:

            long l = Math.round(d * 100); // 四舍五入

            double ret = l / 100.0; // 注意:使用 100.0 而不是 100

            System.out.println("第三种="+ret);

            // 第四种:

            d = ((int) (d * 100)) / 100;

            System.out.println("第四种="+d);

            //第五种

            DecimalFormat df2 = new DecimalFormat("#.00");

            //df2.setRoundingMode(RoundingMode.HALF_UP);

            System.out.println("第五种="+df2.format(d));

            System.out.println("-------------------------风骚的java分割线---------------------------");

        }

    }

    public static void main(String[] args) {

        Test t = new Test();

        t.func();

    }

}

3、运行结果:

测试1 = 3.4567

第一种=3.46

第二种=3.46

第三种=3.46

第四种=3.0

第五种=3.00

-------------------------风骚的java分割线---------------------------

测试2 = 3.0

第一种=3

第二种=3.00

第三种=3.0

第四种=3.0

第五种=3.00

-------------------------风骚的java分割线---------------------------

测试3 = 0.4567

第一种=0.46

第二种=0.46

第三种=0.46

第四种=0.0

第五种=.00

-------------------------风骚的java分割线---------------------------

测试4 = 2343.333

第一种=2343.33

第二种=2343.33

第三种=2343.33

第四种=2343.0

第五种=2343.00

-------------------------风骚的java分割线---------------------------

测试5 = 133.0

第一种=133

第二种=133.00

第三种=133.0

第四种=133.0

第五种=133.00

-------------------------风骚的java分割线---------------------------

测试6 = 3.1415

第一种=3.14

第二种=3.14

第三种=3.14

第四种=3.0

第五种=3.00

-------------------------风骚的java分割线---------------------------

1、通过执行结果可以看出,一二两种都可以,第一种如果小数部分是0的话就只显示整数,第二种始终显示两位小数。可以根据自己的需要进行选择。

猜你喜欢