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

このコードを使用していますが、Math.pow(-n,-n) を正しく計算していません。Math.pow(-n,-n) が 0.0 まで計算しているようです。すべての変数には type がありdoubleます。

4

2 に答える 2

2

元本などに基づいて毎月のローン返済額を計算しようとしているように見えますが、式が間違ってい(1+amtI)*Math.pow(-n,-n)ますMath.pow(1+amtI,-n)

于 2013-03-17T08:54:48.377 に答える
1

の値pow(-n,-n)が小さすぎて a として表すことができませんdouble(絶対値でのゼロ以外の double の最小値は約 10E-323 です)。

代わりにBigDecimalを使用することもできますが、計算BigDecimalが遅くなることに注意してください。

于 2013-03-17T08:50:33.363 に答える