Tôi không thể tìm thấy lý do tại sao tôi nhận được java.lang.ArithmeticException: Invalid operation
khi sử dụng số thập phân lớn.java BigDecimal arithmaticException hoạt động không hợp lệ
public static String E (int exponent, String value){
BigDecimal ten= new BigDecimal("10");
BigDecimal tempValue=new BigDecimal (value);
return tempValue.multiply(ten.pow(exponent)).toString();
}
Một số số mũ có giá trị như -27
. Có cách nào xung quanh điều này vì nó sẽ rất khó để lưu trữ các giá trị ban đầu với nhiều số không. Tôi đã chọn BigDecimal vì tôi cần chính xác.
Cảm ơn bạn
tôi hoàn toàn chắc chắn rằng nó không có độ chính xác vô hạn. Tôi vẫn nhận được lỗi đó mặc dù. Sử dụng double sẽ không đạt được như xa trong khi một số hoạt động thực hiện có xu hướng được thực hiện gần 0. Tôi không thấy làm thế nào 10 để tắt một cái gì đó có thể là một độ chính xác vô hạn và một máy tính khoa học có thể giữ giá trị lên đến -99. Nếu không sẽ có một cách tốt hơn để đại diện cho điều này? –
Bạn có thể cho chúng tôi dấu vết ngăn xếp của ngoại lệ không? –
@ErrorMessages 'pow (int)' sẽ, khi đưa ra một số âm, ném một ArithmeticException. Luôn luôn. http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#pow%28int%29 – Joni