数値をゼロで割っているため、無限大になります。 1-(Math.pow(intrest/400 + 1,(-1/3)))
の値は、ここで0
でデバッグコードです:ここでは
public class Round {
public static void main(String args[]){
double intrest=8.5;
double quaters =21.0/3.0;
double first=intrest/400.0 + 1 ;
double secound=(-1.0/3.0);
double amount=100.0;
System.out.println("intrest"+intrest);
System.out.println(secound);
System.out.println(quaters);
System.out.println(first);
System.out.println(Math.pow(intrest/400 + 1, quaters) - 1);
System.out.println(1-(Math.pow(intrest/400 + 1,(-1/3))));
double monthpayment = amount * ((Math.pow(intrest/400 + 1, quaters) - 1)/(1-(Math.pow(intrest/400 + 1,(-1/3)))));
System.out.println(monthpayment);
}
}
行ごとに出力されます。
intrest8.5
-0.3333333333333333
7.0
1.02125
0.15857589055432686
**0.0**
Infinity
は、したがって、あなたが取得している、あなたはゼロで、それを分割している参照してください。無限
あなたが無限大にしたくない場合は、あなただけの変更を次の手順を実行することができます
double monthpayment = amount * ((Math.pow(intrest/400 + 1, quaters) - 1)/(1-(Math.pow(intrest/400 + 1,((double)-1/3)))));
今値(1-(Math.pow(intrest/400 + 1,((double)-1/3))))
は0.006984615789001336
代わりの0
ありがとうございます! – user3855182
嬉しいです。 – gencode