等额本息的贷款计算。。后续更新 提前还款

import kotlin.math.pow

//剩余贷款金额  初始化为总贷款数 一百万
var totalLoad: Double = 1000000.0

//剩余月供期数  初始化为贷款期限  30 年
var cycle: Double = 360.0

//真是贷款期限
var totalCycle: Int = 360

//年利率  真实年利率  加点浮动可以自己计算  2019 上浮 10%
val yearRate = 0.0539

//月利率
val mouthRate = yearRate / 12


//选算出来月供  [借款金额×月利率×(1+月利率)^借款月数]÷[(1+月利率)^借款月数-1]  固定公式
val monthlyPayment = (totalLoad * mouthRate * (1 + mouthRate).pow(cycle)) / ((1 + mouthRate).pow(cycle) - 1)

//第一个月的利息
fun main() {
    var beans = ArrayList<Bean>()
    for (i in 1..totalCycle) {
        beans.add(Bean(i))
    }
}

internal class Bean(index: Int) {
    init {
        //每个月利息为 本月还未还款金额乘月利率
        var mouthInterest = totalLoad * mouthRate
        //本月 月供减去利息 就是还的本金
        var mouthPrincipal = monthlyPayment - totalLoad * mouthRate
        // 总欠款-本月还款本金 为下个月待还本金
        var remaining = totalLoad - mouthPrincipal

        if (remaining <= 0) {//最后不欠钱了
            remaining = 0.0
        }
        System.out.println("(${index}月还本金${mouthPrincipal}, 本月利息=${mouthInterest},  剩余未还本金=${remaining})")

        //本金降低 这个月的本金
        totalLoad = remaining
        //月供期数变少
        cycle--
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值