import java.util.Date;
import java.util.Scanner;
class Loan {
private double annualInterestRate;
private int numberOfYears;
private double loanAmount;
private Date loanDate;
Loan() {
}
public Loan(double annualInterestRate, int numberOfYears, double loanAmount, Date loanDate) {
loanDate = new Date();
this.annualInterestRate = annualInterestRate;
this.numberOfYears = numberOfYears;
this.loanAmount = loanAmount;
this.loanDate = loanDate;
}
public Date getLoanDate() {
return loanDate;
}
public double getAnnualInterestRate() {
return annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
public int getNumberOfYears() {
return numberOfYears;
}
public void setNumberOfYears(int numberOfYears) {
this.numberOfYears = numberOfYears;
}
public double getLoanAmount() {
return loanAmount;
}
public void setLoanAmount(double loanAmount) {
this.loanAmount = loanAmount;
}
public double getMonthlyPayment() {
return loanAmount * (annualInterestRate / 1200) / (1 - Math.pow(1 / (1 + annualInterestRate / 1200), (numberOfYears * 12)));
}
public double getTotalPayment() {
return (loanAmount * (annualInterestRate / 1200) / (1 - Math.pow(1 / (1 + annualInterestRate / 1200), (numberOfYears * 12)))) * numberOfYears * 12;
}
}
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Loan m = new Loan();
m.setAnnualInterestRate(input.nextDouble());
m.setNumberOfYears(input.nextInt());
m.setLoanAmount(input.nextDouble());
System.out.println("贷款年利率是" + m.getAnnualInterestRate());
System.out.println("贷款总额是" + m.getLoanAmount());
System.out.println("贷款年限是" + m.getNumberOfYears());
System.out.println("月还款额是" + m.getMonthlyPayment());
System.out.println("还款总额是" + m.getTotalPayment());
}
}

代码和运行结果如上,红笔标出的是运行结果不一样的地方,只差那几个数,我实在搞不明白。