1.Java中double类型的数据进行四舍五入时可能会因为精度问题导致错误,比如
38605.2555,其Java中的真是数据是38605.25549999999930150806903839111328125,四舍五入时结果可能是38605.255.
public class Demo {
public static void main(String[] args) {
double a = 38605.2555;
BigDecimal bigDecimal = new BigDecimal(a).setScale(3, BigDecimal.ROUND_HALF_UP);
System.out.println(bigDecimal);
}
}
解决方法:用String.format()方法
public class Demo {
public static void main(String[] args) {
double a = 38605.2555;
//靠谱的方法
System.out.println(String.format("%.3f", a));
}
}