module FinancialMath::SimpleInterest
Public Instance Methods
bank_discount(future_value:, discount_rate:, periods: 0, frequency: 1)
click to toggle source
# File lib/financial_math/simple_interest.rb, line 31 def bank_discount(future_value:, discount_rate:, periods: 0, frequency: 1) factor_val = factor(periods: periods, frequency: frequency) (future_value * discount_rate * factor_val).round(2) end
discount_rate(interest_rate:, periods: 0, frequency: 1)
click to toggle source
# File lib/financial_math/simple_interest.rb, line 19 def discount_rate(interest_rate:, periods: 0, frequency: 1) divisor = 1 + interest_rate * factor(periods: periods, frequency: frequency) (interest_rate / divisor).round(2) end
future_value(present_value:, interest_rate:, periods: 0, frequency: 1)
click to toggle source
# File lib/financial_math/simple_interest.rb, line 3 def future_value(present_value:, interest_rate:, periods: 0, frequency: 1) factor_val = factor(periods: periods, frequency: frequency) (present_value * (1 + interest_rate * factor_val)).round(2) end
interest_rate(discount_rate:, periods: 0, frequency: 1)
click to toggle source
# File lib/financial_math/simple_interest.rb, line 13 def interest_rate(discount_rate:, periods: 0, frequency: 1) divisor = 1 - discount_rate * factor(periods: periods, frequency: frequency) (discount_rate / divisor).round(2) end
present_value(future_value:, interest_rate:, periods: 0, frequency: 1)
click to toggle source
# File lib/financial_math/simple_interest.rb, line 8 def present_value(future_value:, interest_rate:, periods: 0, frequency: 1) factor_val = factor(periods: periods, frequency: frequency) (future_value / (1 + interest_rate * factor_val)).round(2) end
rational_discount(present_value:, interest_rate:, periods: 0, frequency: 1)
click to toggle source
# File lib/financial_math/simple_interest.rb, line 25 def rational_discount(present_value:, interest_rate:, periods: 0, frequency: 1) factor_val = factor(periods: periods, frequency: frequency) (present_value * interest_rate * factor_val).round(2) end
Private Instance Methods
factor(periods: 0, frequency: 1)
click to toggle source
# File lib/financial_math/simple_interest.rb, line 38 def factor(periods: 0, frequency: 1) periods / frequency.to_f end