Module: FinancialMath::SimpleInterest
- Defined in:
- lib/financial_math/simple_interest.rb
Instance Method Summary collapse
- #bank_discount(future_value:, discount_rate:, periods: 0, frequency: 1) ⇒ Object
- #discount_rate(interest_rate:, periods: 0, frequency: 1) ⇒ Object
- #future_value(present_value:, interest_rate:, periods: 0, frequency: 1) ⇒ Object
- #interest_rate(discount_rate:, periods: 0, frequency: 1) ⇒ Object
- #present_value(future_value:, interest_rate:, periods: 0, frequency: 1) ⇒ Object
- #rational_discount(present_value:, interest_rate:, periods: 0, frequency: 1) ⇒ Object
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 |