首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 房貸月供計算器:依年限對應利率計算並格式化輸出

     編輯:程式設計疑難解答

需求:輸入貸款金額與年限 (3/5/20 年),依對應利率 (6.03%/6.12%/6.39%) 計算總利息與月供,輸出保留兩位小數。

核心公式

總利息 = 貸款金額 × 年利率 × 年數
月供   = (貸款金額 + 總利息) / (年數 × 12)

※ 題目簡化為單利一次計算,非銀行實際等額本息/等額本金公式。

完整 Java 實作

import java.util.Scanner;
import java.text.DecimalFormat;

public class MortgageCalculator {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        DecimalFormat df = new DecimalFormat("#.00");
        String cont = "";
        while (!"n".equalsIgnoreCase(cont)) {
            System.out.print("請輸入貸款金額: ");
            double principal = in.nextDouble();
            System.out.println("請選擇貸款年限: 1. 3年  2. 5年  3. 20年");
            int choice = in.nextInt();

            int years = 0;
            double rate = 0;
            switch (choice) {
                case 1: years = 3;  rate = 0.0603; break;
                case 2: years = 5;  rate = 0.0612; break;
                case 3: years = 20; rate = 0.0639; break;
                default:
                    System.out.println("選項錯誤");
                    continue;
            }

            double totalInterest = principal * rate * years;
            double monthly = (principal + totalInterest) / (years * 12);
            System.out.println("--- 月供為 " + df.format(monthly) + " 元 ---");

            System.out.print("是否重新計算? (y/n): ");
            cont = in.next();
        }
        System.out.println("感謝使用,再見!");
    }
}

執行範例

請輸入貸款金額: 1000000
請選擇貸款年限: 1. 3年  2. 5年  3. 20年
1
--- 月供為 29452.78 元 ---
是否重新計算? (y/n): n
感謝使用,再見!

進階擴充建議

  • 改用 等額本息公式:月供 = P * r * (1+r)^n / ((1+r)^n - 1) (r=月利率, n=總期數),更貼近銀行實際試算。
  • 加入 BigDecimal 避免浮點誤差。
  • 做成 Swing/JavaFX/GUI 介面,提升使用者體驗。
  • 支援提前還款、利率調整模擬。

掌握基本試算邏輯後,再套用金融標準公式,即可開發出專業級房貸計算工具。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved