ruby - 如何在 ruby​​ 中建立摊销表?

标签 ruby

我正在尝试用 Ruby 构建一个摊销表来:

  1. 计算每月付款。
  2. 每月利息费用。
  3. 显示付款实际减少了多少贷款余额 (或您所欠的金额)。
  4. 该表显示了还清贷款的方式和时间。
  5. 计算任意次数的付款后欠多少钱。
  6. 比较贷款报价,了解每笔贷款需要支付多少利息等。

为了解决这个问题,我想创建两个空数组,一个数组将保存所有每月值,第二个数组将保存所有每月数组。

loan_amount = 250000
rate = 0.035
periods = 60
loan_time = 5 years

periods.times do |period|

 # the monthly payment
 monthly_payment = loan_amount *( (rate * ( 1 + rate)**periods)  / ( ( 1 + rate )**periods - 1) )

end

如何减少 ruby​​ 中的值? 例如我需要通过每月还款来减少loan_amount

最佳答案

如果您要在每次循环中计算付款,您还需要减少周期并保持欠款金额移动。像这样的事情:

periods.times do |period|

   # the monthly payment
    monthly_payment = loan_amount * ( (rate * ( 1 + rate)**periods)  / ( ( 1 + rate )**periods - 1) )

    periods -= 1
    loan_amount = loan_amount * (1 + rate) - monthly_payment
end

您应该注意到,每月付款保持不变。您实际上可以在循环之前计算它,然后它看起来像这样:

# the monthly payment
monthly_payment = loan_amount * ( (rate * ( 1 + rate)**periods)  / ( ( 1 + rate )**periods - 1) )

periods.times do |period|
    loan_amount = loan_amount * (1 + rate) - monthly_payment
end

那么,loan_amount 将是每个月底所欠的金额。

如果付款看起来非常高,那是因为您的利率可能是年利率,并且可以除以 12。

关于ruby - 如何在 ruby​​ 中建立摊销表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30305447/

相关文章:

ruby - 如何在 Ruby 中以毫秒为单位计时操作?

ruby-on-rails - 在 Ruby 中,递归地从 json 字符串中删除空白项

ruby - Ruby 中我的 XML 之前的无效字符

ruby - 将一组 Active Record 对象转换为散列

ruby - Hook 后的 cucumber "puts"不输出任何内容

ruby - 在这里使用 attr_accessor 是否更好?

python - Ubuntu 中的 PDF 到 PPT 转换器

ruby-on-rails - 了解 Rails 中的约束

ruby-on-rails - Rails 4 form_for 标签将表单操作留空

ruby-on-rails - 自定义本地 gem:Bundler::GemNotFound: 找不到 gem