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使用的语法
总结
总之程序保留小数点后几位数都有提供的方法,自己写也是可以的,这看个人兴趣