java保留两位小数(java保留两位小数的函数)(1)

最近使用Java开发中遇到一些场景需要对数值进行小数点精确度的限制,如保留小数点后四位,索性梳理一下相关的方法,大概六种方式,直接贴代码,如下:

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;

public class TestDemo{
    public static void main(String[] args) {
        double num1 = 100.13145;

        //保留4位小数 100.1315 四舍五入
        BigDecimal bigDecimal = new BigDecimal(num1);
        double num2 = bigDecimal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
        System.out.println(num2);

        // 保留4位小数 100.1315 四舍五入
        DecimalFormat decimalFormat = new DecimalFormat("#.0000");
        String stringValue = decimalFormat.format(num1);
        System.out.println(stringValue);
        Double doubleValue = Double.parseDouble(decimalFormat.format(num1));
        System.out.println(doubleValue);

        // 保留4位小数 100.1315 四舍五入
        System.out.println(String.format("%.4f", num1));

        // 保留4位小数 100.1315 四舍五入
        Double get_double = (double) ((Math.round(num1 * 10000)) / 10000.0);
        System.out.println(get_double);

        // 保留4位小数 100.1315
        NumberFormat numberFormat = NumberFormat.getNumberInstance();
        numberFormat.setMaximumFractionDigits(4);
        System.out.println(numberFormat.format(num1));


        // 保留4位小数 100.1314
        float num3 = (float) 100.13145;
        float a = (float) (Math.round(num3 * 10000)) / 10000;
        System.out.println(a);



    }
}