Java的Double类型保留N位小数

Java的Double类型保留4位小数

最近遇到了需要保留将 double类型的数据,保留4位小数,找到了下面的方法解决:

double d = 1.12345678;
BigDecimal valueDecimal = new BigDecimal(d);
double value = valueDecimal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();

Java的Double类型保留N位小数_第1张图片

扩展:

  • 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);

Java的Double类型保留N位小数_第2张图片
或:

double d = 114.12345;
System.out.println(String.format("%.4f", d));

Java的Double类型保留N位小数_第3张图片

你可能感兴趣的:(Java基础,java)