Java的Double类型保留4位小数
最近遇到了需要保留将 double类型的数据,保留4位小数,找到了下面的方法解决:
double d = 1.12345678;
BigDecimal valueDecimal = new BigDecimal(d);
double value = valueDecimal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
扩展:
- BigDecimal.ROUND_HALF_UP表示四舍五入
- BigDecimal.ROUND_HALF_DOWN也是五舍六入
- BigDecimal.ROUND_UP表示进位处理(就是直接加1)
- BigDecimal.ROUND_DOWN表示直接去掉尾数
有时候我们需要返回String类型的:
double d = 1.1234;
DecimalFormat df = new DecimalFormat("#.0000");
String str = df.format(d);
System.out.println(str);
或:
double d = 114.12345;
System.out.println(String.format("%.4f", d));