百度这个问题,可以直接得到 AI 返回的两个方法:

方法一:使用DecimalFormat类进行格式化

import java.text.DecimalFormat;
 
public class Main {
    public static void main(String[] args) {
        double num = 3.1415926;
        
        DecimalFormat df = new DecimalFormat("#.00");
        String result = df.format(num);

        System.out.println(result);
    }
}

方法二:使用String.format()方法进行格式化

public class Main {
    public static void main(String[] args) {
        double num = 3.1415926;
        
        String result = String.format("%.2f", num);
        
        System.out.println(result);
    }
}

Java中double保留两位小数的多种方法 - jb51.net 还介绍了 BigDecimal.setScale()NumberFormat 方法,大抵都是调用 Java 的一些类库来实现。

不过,当前目标还有一个,就是保留两位小数之后还要写回到原属性中,所以返回类型需要为 Double。

import java.text.DecimalFormat;
 
public class Main {
    public static void main(String[] args) {
        double num = 3.1415926;
        
        DecimalFormat df = new DecimalFormat("#.00");
        String result = df.format(num);
        double num1 = Double.parseDouble(result);

        System.out.println(num1);
    }
}

Double 与 double 类型似乎不需要额外转换,可以直接变化使用

附:DecimalFormat 基本用法,介绍了 RoundingMode 舍入法的设置以及占位符0#的用法。