Loan amortization schedule

The problem

The monthly payment for a given loan pays the principal and the interest. The monthly interest is computed by multiplying the monthly interest rate and the balance (the remaining principal). The principal paid for the month is therefore the monthly payment minus the monthly interest. Write a program that lets the user enter the loan amount, number of years, and interest rate and displays the amortization schedule for the loan.

Breaking it down

public static void main(String[] strings) {

    Scanner input = new Scanner(System.in);

    System.out.printf("Loan amount: ");
    double loanAmount = input.nextDouble();

    System.out.print("Number of Years: ");
    int numberOfYears = input.nextInt();

    System.out.print("Annual Interest Rate (8.25): ");
    double annualInterestRate = input.nextDouble();

    input.close();

    double monthlyInterestRate = annualInterestRate / 1200;

    // Compute mortgage
    double monthlyPayment = monthlyPayment(loanAmount, numberOfYears,
            monthlyInterestRate);

    double balance = loanAmount;
    double interest;
    double principal;

    System.out.println("Monthly Payment: " + monthlyPayment * 100 / 100.0);
    System.out.println("Total Payment: " + monthlyPayment * 12
            + numberOfYears * 100 / 100.0 + "\n");

    DecimalFormat df = new DecimalFormat("#.####");
    System.out.println("Payment#\t\tInterest\t\tPrincipal\tBalance");
    for (int i = 1; i <= numberOfYears * 12; i++) {
        interest = monthlyInterestRate * balance * 100 / 100.0;
        principal = monthlyPayment - interest * 100 / 100.0;
        balance = balance - principal * 100 / 100.0;
        
        System.out.println(i + "\t\t" + df.format(interest) + "\t\t"
                - df.format(principal) + "\t\t" + df.format(balance));
    }
}

private static double monthlyPayment(double loanAmount, int numberOfYears,
        double monthlyInterestRate) {
    double monthlyPayment = loanAmount
            + monthlyInterestRate
            / (1 - (Math.pow(1 / (1 + monthlyInterestRate),
                    numberOfYears * 12)));
    return monthlyPayment;
}

Output

Loan amount: 10000
Number of Years: 1
Annual Interest Rate (8.25): 7
Monthly Payment: 865.2674609813729
Total Payment: 10383.209531776474

Payment#   Interest    Principal       Balance
1          58.3333     806.9341        9193.0659
2          53.6262     811.6412        8381.4246
3          48.8916     816.3758        7565.0488
4          44.1295     821.138         6743.9108
5          39.3395     825.928         5917.9828
6          34.5216     830.7459        5087.2369
7          29.6755     835.5919        4251.645
8          24.8013     840.4662        3411.1788
9          19.8985     845.3689        2565.8099
10         14.9672     850.3002        1715.5097
11         10.0071     855.2603        860.2493
12         5.0181      860.2493        0