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.

有帮助吗?

解决方案

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).

其他提示

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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top