首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java净现值

Java净现值
EN

Stack Overflow用户
提问于 2021-11-14 00:19:23
回答 1查看 48关注 0票数 0

我试图以固定的速度计算这么多年后的净现值,当我运行它时,我总是得到我想要的数字的负号,但当我去掉最后一行中的负号时,同样的问题也发生了。当我的代码读作

代码语言:javascript
复制
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

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2021-11-14 20:25:46

我意识到第一年唯一发生的事情是债务被实例化,你应该从负投资开始,然后每年增加新的支出。

代码语言:javascript
复制
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;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69959322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档