Как я могу исправить получение NaN как мой результат? - PullRequest
1 голос
/ 25 октября 2019

Я пытаюсь написать программу калькулятора платежей, но получаю "NaN" в качестве результата. Программа запрашивает ввод суммы и срока кредита (в месяцах). Затем программа должна рассчитать ежемесячные платежи за каждый год (3% -10%). Я не уверен, что сделал что-то не так с моими вычислениями.

   double L, payment;   
   double APR = 0;   
   int n;   
   Scanner input = new Scanner(System.in);    
   System.out.println("Loan calculator");   
   System.out.print("Enter the loan amount: ");   
   L = input.nextDouble();   
   System.out.print("Enter the number of payments: ");  
   n = input.nextInt();   
   double t = APR/1200.0;      
   for (APR = 3; APR <= 10; APR += .25){   
      payment = L * (t * (Math.pow((1.0 + t), n)) / (Math.pow((1.0 + t), n) - 1.0));
      System.out.println(APR + "\t" + payment);

1 Ответ

0 голосов
/ 25 октября 2019

Определить или хотя бы назначить t в цикле. В противном случае он будет вычисляться только один раз перед циклом с использованием APR, который в это время равен 0.

for (APR = 3; APR <= 10; APR += .25){   
   double t = APR/1200.0;      
   payment = L * (t * (Math.pow((1.0 + t), n)) / (Math.pow((1.0 + t), n) - 1.0));
   System.out.println(APR + "\t" + payment);
...