我试图以固定的速度计算这么多年后的净现值,当我运行它时,我总是得到我想要的数字的负号,但当我去掉最后一行中的负号时,同样的问题也发生了。当我的代码读作
public static double netPresentValue(double investment, int years, double payout, double r) {
double count = 0;
for (int i = 1; i == years; i++) {
investment = presentValue(payout, i, r) - investment;
}
return -investment;
}-90909是预期的,但在我写的时候会得到+90909
public static double netPresentValue(double investment, int years, double payout, double r) {
double count = 0;
for (int i = 1; i == years; i++) {
investment = presentValue(payout, i, r) - investment;
}
return investment;
}对于第零年,我收到的代码应该是-100000,但我得到的是100000
发布于 2021-11-14 20:25:46
我意识到第一年唯一发生的事情是债务被实例化,你应该从负投资开始,然后每年增加新的支出。
public static double netPresentValue(double investment, int years, double payout, double r) {
double debt = 0.0;
for (int i = 0; i <= years; i++) {
if (i == 0) {
debt = -investment;
}//
else {
debt = debt + presentValue(payout, i, r);
}//end else
}//end for loop
return debt;
}https://stackoverflow.com/questions/69959322
复制相似问题