Java 保留两位小数的六种方法

最近使用Java开发中遇到一些场景需要对数值进行小数点精确度的限制 , 如保留小数点后四位 , 索性梳理一下相关的方法 , 大概六种方式 , 直接贴代码 , 如下:
【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 = http://kandian.youth.cn/index/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.1315NumberFormat numberFormat = NumberFormat.getNumberInstance();numberFormat.setMaximumFractionDigits(4);System.out.println(numberFormat.format(num1));// 保留4位小数 100.1314float num3 = (float) 100.13145;float a = (float) (Math.round(num3 * 10000)) / 10000;System.out.println(a);}}