Java保留小数点后几位数

288 阅读1分钟

java的几种保留小数位数的方法

DecimalFormat使用

public class NumberFormatUtil {


  public static String getNumber(double number) {
    DecimalFormat df = new DecimalFormat("0.##");
    return df.format(number);
  }

  public static void main(String[] args) {
    System.out.println(getNumber(1.2676));
    System.out.println(getNumber(1.2489));
  }
}

第一个会输出1.27,第二个会输出1.25

String.format()使用

public class StringFormatDemo {

  public static void main(String[] args) {
    double decimal = 3.24567;
    String format = String.format("%.2f", decimal);
    double v = Double.parseDouble(format);
    System.out.println(v);
  }

}

上面是保留小数点后2位数,结果会输出3.25

BigDecimal使用

import java.math.BigDecimal;

public class DecimalFormatDemo {

  public static void main(String[] args) {
    BigDecimal a = new BigDecimal(4.639);
    BigDecimal b = new BigDecimal(-49.64545);
    System.out.println(a.setScale(2, BigDecimal.ROUND_UP));
    System.out.println(b.setScale(2, BigDecimal.ROUND_UP));

//    System.out.println(a.setScale(2, RoundingMode.UP));
//    System.out.println(a.setScale(2, RoundingMode.DOWN));
  }
}

上面程序是保留小数点后2位数,分别输出4.64和-49.65, 备注: 没注释掉的是jdk8的代码,注释掉后的是jdk9使用的语法

总结

总之程序保留小数点后几位数都有提供的方法,自己写也是可以的,这看个人兴趣