Module: FinancialMath::SimpleInterest

Defined in:
lib/financial_math/simple_interest.rb

Instance Method Summary collapse

Instance Method Details

#bank_discount(future_value:, discount_rate:, periods: 0, frequency: 1) ⇒ Object



31
32
33
34
# 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) ⇒ Object



19
20
21
22
23
# 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) ⇒ Object



3
4
5
6
# 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) ⇒ Object



13
14
15
16
17
# 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) ⇒ Object



8
9
10
11
# 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) ⇒ Object



25
26
27
28
29
# 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