我正在尝试制作一个小程序来计算支付信用卡所需的时间,我发现this equation online:
这是我到目前为止所做的事情(在我尝试函数之前,只是想让方程式与虚拟数据一起工作)。但是我总是在输入和意外结束时遇到错误(如果人们有机会,我会很乐意帮助。谢谢!
card_length = ((0.06/365)/30) * ((log(1+(14000/200)(1-(1+0.06)^30)))/log(1+0.06))
答案 0 :(得分:2)
您可能需要将log
方法调用更改为Math.log
来电。此外,您在第二部分中缺少乘法运算符,并且使用**
计算Ruby中的幂,因此:
card_length = ((0.06/365)/30) * ((Math.log(1+(14000/200)*(1-(1+0.06)**30)))/Math.log(1+0.06))
答案 1 :(得分:2)
该公式没有得到很好的解释,也没有任何示例值来测试解决方案。但无论如何,试试这个:
class CreditCard
def initialize(balance: b, monthly_payment: m, annual_interest_rate: a)
@balance = balance
@monthly_payment = monthly_payment
@annual_interest_rate = annual_interest_rate
end
def how_long
(-1 / 30) * (numerator / denominator)
end
def daily_interest_rate
@annual_interest_rate / 365
end
def b_by_p
@balance / @monthly_payment
end
def one_plus_i
1 + daily_interest_rate
end
def numerator
Math.log(1 + b_by_p * (1 - (one_plus_i)**30))
end
def denominator
Math.log one_plus_i
end
end
CreditCard.new(balance: 1500, monthly_payment: 500, annual_interest_rate: 0.10).how_long # => 91.50823668064119