计算了一下房贷压力,以全额公积金贷款为例,贷款四十万,等额本金方式还款,房贷利率为2.85%,基本情况就是如下:
还款总额达到
提前还款的好处
按三十年计算,如果第一年借用亲朋好友的钱(不出利息)。
打个比方,借了亲人五万,借亲人的钱一年或者两年内还清。那么把这五万放在房贷中,三十年的公积金利息就少了4万员还提前还了四年。
571474.77 - 532643.52
每年多还款的好处
如果每年除了(月供)按月还款,还额外提前还款4万,那么总利息将近少十万。而且提前到七年就可以还款结束。
446547.35 - 437379.86
代码如下:
public static void main(String[] args) {calc();}public static void calc(){Integer monthCount =360;// 贷款金额BigDecimal totalLoan = new BigDecimal(400000);// 每年提前还的金额BigDecimal yearMoney = new BigDecimal(0);// 利车BigDecimal yearRate = new BigDecimal( 0.0285);// 月利车BigDecimal monthlyRate = yearRate.divide(new BigDecimal(12), 7,RoundingMode.HALF_UP);// 每月应还本金BigDecimal monthlyPrincipal = totalLoan.divide(new BigDecimal(monthCount), 2, RoundingMode.HALF_UP);BigDecimal rateTotal = new BigDecimal( 0);Boolean isFirst = true;for (int i = 1; i <= monthCount; i++) {if (totalLoan.compareTo(BigDecimal.ZERO) < 0) {System.out.println("多余还款:"+totalLoan);// 增加多余的还款金额rateTotal = rateTotal.add(totalLoan);break;}if (i % 12 == 0) {if(totalLoan.compareTo(yearMoney) < 0){rateTotal = rateTotal.add(totalLoan);break;}totalLoan = totalLoan.subtract(yearMoney);rateTotal = rateTotal.add(yearMoney);if(isFirst){totalLoan = totalLoan.subtract(new BigDecimal(50000));rateTotal = rateTotal.add(new BigDecimal(50000));isFirst = false;}}if (totalLoan.compareTo(monthlyPrincipal) < 0) {System.out.println("还款完成");break;}// 当月利息=剩余本金*月利率BigDecimal currentInterest = totalLoan.multiply(monthlyRate).setScale(2, RoundingMode.HALF_UP);// 当月总还款额=每月应还本金+当月利息BigDecimal monthlyPayment = monthlyPrincipal.add(currentInterest);// 每月剩余本金totalLoan = totalLoan.subtract(monthlyPrincipal);rateTotal = rateTotal.add(monthlyPayment);System.out.println("第" + i + "月,应还本金:" + monthlyPrincipal + ",利息:" + currentInterest + ",还款总额:" + monthlyPayment +",剩余本金:" + totalLoan);}System.out.println("还款总额:" + rateTotal);}