Tôi cố gắng để làm tròn các giá trị gấp đôi lên 2 chữ số thập phân, tuy nhiên nó không làm việc trong tất cả các kịch bảnJava Vòng đúp tắt đến 2 chữ số thập phân luôn
public static double round(double value, int places) {
if (places < 0) throw new IllegalArgumentException();
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(places, RoundingMode.HALF_UP);
return bd.doubleValue();
}
public static void main(String[] args) {
System.out.println(round(25.0,2)); //25.0 - expected 25.00
System.out.println(round(25.00d,2)); //25.0 - expected 25.00
System.out.println(round(25,2)); //25.0 - expected 25.00
System.out.println(round(25.666,2)); //25.67
}
Nói tóm lại, dù số thập phân tồn tại hay không, luôn giữ các giá trị tối đa 2 thập phân ngay cả khi nó cần thêm các số không.
Mọi trợ giúp đều được đánh giá cao!
Bạn có thể cần sử dụng định dạng thập phân thay vì setScale. –