zoukankan      html  css  js  c++  java
  • 利用“计算器”和公式做房贷计算

    等额本息公式还是挺复杂的,忽然想起以前写了一个“计算器”,因而就想顺手把房贷利息计算给做了,还加上了提供月供计算利率的功能。

    下图就是计算器的界面,支持:进制转换、四则运算、常用函数

    image

    下图就是房贷公式

    有了以上两个工具,等额本息就比较简单了,等额本金则更为简单。

    变量定义:A借款本金,B月利率,M期数,X月供;

    月供计算:使用了临时变量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);
    }

    房贷计算接口

     

  • 相关阅读:
    p1297
    p2023
    p1612
    逆元总结
    p1652
    考试总结10-08
    p1459
    p1821
    p1863
    p1884
  • 原文地址:https://www.cnblogs.com/xingqi/p/9937099.html
Copyright © 2011-2022 走看看