Question

monPay = (amtFin * amtI)/((1-(1+amtI)*Math.pow(-n,-n)));

I am using this code but it is not calculating Math.pow(-n,-n) correctly. It seems like it is Math.pow(-n,-n) is calculating to 0.0. All variables have type double.

Was it helpful?

Solution

It looks like you're trying to compute monthly loan repayments based on the principal amount etc. However, your formula is wrong: the (1+amtI)*Math.pow(-n,-n) should be Math.pow(1+amtI,-n).

OTHER TIPS

What happens is that the value of pow(-n,-n) is too low to be represented as a double (the minimum non-zero double in absolute value is about 10E-323).

You may work with BigDecimal instead, but note that computations with BigDecimal are slower.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top