lib/exonio/financial.rb in exonio-0.7.0 vs lib/exonio/financial.rb in exonio-0.7.1
- old
+ new
@@ -117,9 +117,11 @@
#
# @example
# Exonio.pmt(0.075/12, 12*15, 200_000) # ==> -1854.0247200054619
#
def pmt(rate, nper, pv, fv = 0, end_or_beginning = 0)
+ return (-pv - fv) / nper if rate.zero?
+
temp = (1 + rate) ** nper
fact = (1 + rate * end_or_beginning) * (temp - 1) / rate
-(fv + pv * temp) / fact
end