到目前为止我有
double futurevalue = moneyin * (1+ interest) * year;
Java 是正确的,通俗易懂是错误的。复合利息是这样计算的:
K n = K 0 * (1 + p/100) n
其中n是周期数,p 是每个周期的“利息”(每年,如果您查看年份,p=annual/12
如果n=12
您查看月份,则将年度利息作为输入并希望计算一年)
public double compoundInterest(double start, double interest, int periods) {
return start * Math.pow(1 + interest/100, periods);
}
(注:利息是一个百分比值,例如4.2
4.2%)
我认为这是您遇到问题的公式的功率部分(乘以年份是不对的)。对于整数年的简单复利,您可以使用作为 Java SDK 一部分的Math.pow()函数。
double futureValue = moneyIn * Math.pow(1 + interest, year)