我正在try 计算leaseRate,这是一个很大的分数点,但我收到以下错误:
Non-terminating decimal expansion; no exact representable decimal result
个
我知道这是个圆形问题,但是我想我用MathContext precision = new MathContext(2);
解决了这个问题.
这一期我举了一个小例子:
public class Test {
public static void main(String[] args) {
MathContext precision = new MathContext(2);
int mileage = 10;
int duration = 20;
BigDecimal price = new BigDecimal("34234.34",precision);
double interestRate = 4.57;
BigDecimal bMileage = new BigDecimal(mileage, precision);
BigDecimal bDuration = new BigDecimal(duration,precision);
BigDecimal bInterestRate = new BigDecimal(interestRate,precision);
BigDecimal leaseRate = ((((bMileage.divide(
new BigDecimal(12,precision))).multiply(bDuration)).divide(
price)).add(
((bInterestRate.divide(new BigDecimal(100,precision))).multiply(
price)).divide(new BigDecimal(12,precision))));
System.out.println(leaseRate);
}
}
我的代码出了什么问题?