我一直在从事一个Java项目,它是一个计算器,可用于计算不同的复合感兴趣场景(非常类似于图形计算器(如这一个)上的TVM函数)。
计算器的主要功能是使用公式中已知的值计算缺失值。除了计算利率的公式(I)外,我已经得到了所有有效的公式。
我做了一些研究,显然没有一个直接的公式来计算利率。这个网站:http://www.getobjects.com/Components/Finance/TVM/formulas.html展示了我需要使用的方法,但是它需要一些迭代来使用试用和错误来找到I。(查看链接,滚动到标题“年利率”)
这是我为它建立的结构:
public static double calculateI(double N, double PV, double PMT, double FV, double PY){
//method for calculating I goes here
return I;
}我不知道如何实施,可否有人提出建议,或指出正确的方向?
提前谢谢。
下面是@rocketboy提出的建议之后的代码
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;
}发布于 2013-08-12 02:39:18
试一试如下:
double calculateI(/*all values for varialbles*/){
//definition;
}Double.valueOf(d).equals(0.0);
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。
https://stackoverflow.com/questions/18178833
复制相似问题