首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java计算利率(TVM)

用Java计算利率(TVM)
EN

Stack Overflow用户
提问于 2013-08-12 02:33:56
回答 1查看 2.4K关注 0票数 0

我一直在从事一个Java项目,它是一个计算器,可用于计算不同的复合感兴趣场景(非常类似于图形计算器(如这一个)上的TVM函数)。

计算器的主要功能是使用公式中已知的值计算缺失值。除了计算利率的公式(I)外,我已经得到了所有有效的公式。

我做了一些研究,显然没有一个直接的公式来计算利率。这个网站:http://www.getobjects.com/Components/Finance/TVM/formulas.html展示了我需要使用的方法,但是它需要一些迭代来使用试用和错误来找到I。(查看链接,滚动到标题“年利率”)

这是我为它建立的结构:

代码语言:javascript
复制
public static double calculateI(double N, double PV, double PMT, double FV, double PY){
    //method for calculating I goes here

    return I;
}

我不知道如何实施,可否有人提出建议,或指出正确的方向?

提前谢谢。

下面是@rocketboy提出的建议之后的代码

代码语言:javascript
复制
public static double formulaI(double ip, double N, double PV, double PMT, double FV, double PY){
    double I1=(PV*Math.pow((1+ip),N))+((PMT*1)*(Math.pow((1+ip),N))-1)+FV;
    return I1;
}
public static double calculateI(double N, double PV, double PMT, double FV, double PY){
    double ip=0;
    double res;
    do{
        res = formulaI(ip,N,PV,PMT,FV,PY);
        ip=ip+0.01;
        System.out.println(res);
    }while(res!=0);
    double I=ip*PY;
return I;
}
EN

回答 1

Stack Overflow用户

发布于 2013-08-12 02:39:18

试一试如下:

代码语言:javascript
复制
double calculateI(/*all values for varialbles*/){
//definition;
}

Double.valueOf(d).equals(0.0);

代码语言:javascript
复制
long ip =0;
double res;

do{
   res = calculateI(ip, /*other constant values*/);
   ip++; /*Or you can increase ip according to your logic*/    
}while ( Double.valueOf(res).equals(0.0/*Expected result*/));

编辑:你必须处理边缘案件。这个方程可能永远不会收敛到0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18178833

复制
相关文章

相似问题

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