module MonthlyPeriodicWithdrawals
Constants
- VERSION
Public Class Methods
check_critical?(rate, withdrawal, principal)
click to toggle source
# File lib/monthly_periodic_withdrawals.rb, line 10 def self.check_critical?(rate, withdrawal, principal) check = self.critical_withdrawal(rate, principal) if check > withdrawal false elsif check == withdrawal false else true end end
critical_withdrawal(rate, principal)
click to toggle source
# File lib/monthly_periodic_withdrawals.rb, line 6 def self.critical_withdrawal(rate, principal) (rate*principal).floor2(2) end
time_to_deplete(rate, withdrawal, principal)
click to toggle source
# File lib/monthly_periodic_withdrawals.rb, line 21 def self.time_to_deplete(rate, withdrawal, principal) if self.check_critical?(rate, withdrawal, principal) numerator = (-withdrawal/rate)/(principal-withdrawal/rate) numerator = Math.log10(numerator) denominator = Math.log10(1+rate) result = (numerator/denominator).ceil2 else "This monthly withdrawal will not deplete the principal" end end