利用「計算器」和公式作房貸計算

等額本息公式仍是挺複雜的,突然想起之前寫了一個「計算器」,於是就想順手把房貸利息計算給作了,還加上了提供月供計算利率的功能。php

 

下圖就是計算器的界面,支持:進制轉換、四則運算、經常使用函數java

image

 

下圖就是房貸公式api

 

有了以上兩個工具,等額本息就比較簡單了,等額本金則更爲簡單。dom

變量定義:A借款本金,B月利率,M期數,X月供;svn

月供計算:使用了臨時變量T=(1+B)^M,而後再計算月供X=A*(B*T)/(T-1)函數

利息計算:因爲難以反推B月利率的計算公式,所以使用了直觀的反覆試錯法,即屢次計算月供直到結果與提供的月供極爲接近,此時的B月利率就很是接近真實值工具

String T; // (1+B)^M
if(StringUtil.hasLength(B)) {
    T = NumberUtil.parseExp("(1+"+B+")^"+M);
    X = NumberUtil.parseExp(A+"*("+B+"*"+T+")/("+T+"-1)");
}else {
    double BL = 0.000001, BH = 0.999999, BT = 0.0, XT = Double.parseDouble(X), XI = 0.0;
    if(XT*Integer.parseInt(M) < Double.parseDouble(A)) return null; //不夠本金,何談利息
    do {
        BT = (BL+BH)/2.0; //尋找B月利率
        T = NumberUtil.parseExp("(1+"+BT+")^"+M);
        XI = Double.parseDouble(NumberUtil.parseExp(A+"*("+BT+"*"+T+")/("+T+"-1)"));
        if(Math.abs(XI-XT)<0.1) break;  //1毛之內便可接受結果
        if(XI>XT) BH = BT;
        else BL = BT;
    }while(true);
}

房貸計算接口spa

相關文章
相關標籤/搜索