Пятнадцать.monthyPayment()); каждый раз, когда я его запускаю, возвращается бесконечность. Я не могу понять, почему. Я считаю, что это имеет какое-то отношение к годам, потому что, если я изменю значение лет, равное определенному числу, скажем, 15, оно не вернет бесконечность. Я думал, что MyLoan пятнадцать должны изменить его на 15 для меня.Почему мой метод возвращает бесконечность?
Может ли любое тело сказать мне, почему этот код возвращает бесконечность?
public class MyLoan {
// instance members
private double amountBorrowed;
private double yearlyRate;
private int years;
public double A;
public double n = years * 12;
// public instance method
public MyLoan(double amt, double rt, int yrs) {
this.amountBorrowed = amt;
this.yearlyRate = rt;
this.years = yrs;
}
public double monthlyPayment() {
double i = (yearlyRate/100)/12;
A = (amountBorrowed) * ((i * (Math.pow(1+i,n)))/((Math.pow(1 + i, n))-1));
return A;
}
public static void main(String[] args) {
double RATE15 = 5.75;
double RATE30 = 6.25;
double amount = 10000;
}
MyLoan fifteen = new MyLoan(amount, RATE15, 15);
System.out.println(fifteen.monthlyPayment());
}
Итак, где код для 'ежемесячного платежа'? Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer
Извините! Это всего лишь фрагмент из гораздо более крупного блока кода, и я полностью забыл включить ежемесячный платеж. –
A = (amountBorrowed) * ((i * (Math.pow (1 + i, n)))/((Math.pow (1 + i, n)) - 1)); это делает проблему, что именно вы хотите сделать с этим ??? –