monPay = (amtFin * amtI)/((1-(1+amtI)*Math.pow(-n,-n)));
我正在使用此代码,但它没有正确计算Math.pow(-n,-n)。似乎是Math.pow(-n,-n)计算为0.0。所有变量都有double
类型。
答案 0 :(得分:2)
看起来您正在尝试根据本金金额等计算每月还款额。但是,您的公式错误:(1+amtI)*Math.pow(-n,-n)
应为Math.pow(1+amtI,-n)
。
答案 1 :(得分:1)
pow(-n,-n)
的值太低而无法表示为double
(绝对值的最小非零倍数约为10E-323)。
您可以使用BigDecimal,但请注意BigDecimal
的计算速度较慢。