java 银行贷款工具类

等额本金
 /**
     * 计算等额本金还款
     *
     * @param principal 贷款总额
     * @param months    贷款期限
     * @param rate      贷款利率
     * @return
     */
    public static Kv calculateEqualPrincipal(double principal, int months, double rate) {
        Kv kv = Kv.create();
        double monthRate = rate / (100 * 12);//月利率
        double prePrincipal = principal / months;//每月还款本金
        double firstMonth = prePrincipal + principal * monthRate;//第一个月还款金额
        double decreaseMonth = prePrincipal * monthRate;//每月利息递减
        double interest = (months + 1) * principal * monthRate / 2;//还款总利息
        double totalMoney = principal + interest;//还款总额
        kv.put("totalMoney",format(totalMoney));//还款总额
        kv.put("principal",format(principal));//贷款总额
        kv.put("interest",format(interest));//还款总利息
        kv.put("firstMonth",format(firstMonth*10000));//首月还款金额
        kv.put("decreaseMonth",format(decreaseMonth*10000));//每月递减利息
        kv.put("months",months);//还款期限
        return kv;
    }
等额本金
 /**
     * 计算等额本息还款
     *
     * @param principal 贷款总额
     * @param months    贷款期限
     * @param rate      贷款利率
     * @return
     */
    public static Kv calculateEqualPrincipalAndInterest(double principal, int months, double rate) {
        Kv kv = Kv.create();
        double monthRate = rate / (100 * 12);//月利率
        double preLoan = (principal * monthRate * Math.pow((1 + monthRate), months)) / (Math.pow((1 + monthRate), months) - 1);//每月还款金额
        double totalMoney = preLoan * months;//还款总额
        double interest = totalMoney - principal;//还款总利息
        kv.put("totalMoney",format(totalMoney));//还款总额
        kv.put("principal",format(principal));//贷款总额
        kv.put("interest",format(interest));//还款总利息
        kv.put("preLoan",format(preLoan*10000));//每月还款金额
        kv.put("months",months);//还款期限

        return kv;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章