0

我一直在研究一个 Java 项目,它是一个计算器,可用于计算不同的复利场景(非常类似于在像这样的图形计算器上找到的 TVM 函数)

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

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

这是我为它设置的结构:

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;
}
4

1 回答 1

0

尝试类似:

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。

于 2013-08-12T02:39:18.043 回答