【问题标题】:How to calculate original loan amount without year terms?如何计算没有年限的原始贷款金额?
【发布时间】:2018-06-12 01:00:57
【问题描述】:

https://www.moneysmart.gov.au/tools-and-resources/calculators-and-apps/savings-goals-calculator

我想在选择时得到类似上面计算器的结果:

我要保存:6000
我想花掉它:尽快
起始余额:0
利率:10%
定期节省:每月 1000 元

但我使用此代码得到的结果不正确:

  loan = 6000.0
  interest = 10.0
  monthly_payment = 1000.0
  i =0.0
  record = []
  count = 1
  add_interst = 0.0
  while( loan>=0)
    i = interest/(100*12)*loan
    loan=i+(loan)-(monthly_payment);   
    add_interst = add_interst + i
  end
  puts add_interst

我收到181.42163384701658,应该是168。我不知道我错在哪里。

【问题讨论】:

标签: ruby math finance


【解决方案1】:

代码不起作用,因为您所做的与您引用的链接所做的相反。他们算的是储蓄利息,你算的是贷款利息。

基本上,这就是你应该如何定义变量。另外,正如其他人所指出的,使用 BigDecimal 来计算金钱是很好的:

require 'bigdecimal'
balance = 0.to_d
interest = 10.to_d/1200.to_d
regular_saving = 1000;
goal =6000;
i = 0;
added_interest = 0

因此,要纠正问题,您必须从 starting balance(即 0)开始并开始递增。像这样的:

while balance < goal
    balance += regular_saving;
    i  = balance * (interest);
    balance +=i;
    added_interest+=i;
end

另请注意,在过去一年中,您无需支付全部储蓄金额。您只需要付费即可达到目标。为此,您需要添加一个条件语句来检查goal - balance &lt; regular_saving。如果是这种情况,则应按照应支付的余额(略低于目标)计算利息。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
相关资源
最近更新 更多