首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 階梯式獎金計算:依利潤提成

     編輯:Java 相關知識

企業獎金提成實作

根據利潤區間分級提成:

  • ≤ 10 萬:10%
  • 10~20 萬:10 萬以上部分 7.5%
  • 20~40 萬:20 萬以上部分 5%
  • 40~60 萬:40 萬以上部分 3%
  • 60~100 萬:60 萬以上部分 1.5%
  • > 100 萬:100 萬以上部分 1%

程式實作

import java.util.Scanner;

public class BonusCalculator {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("輸入當月利潤(萬元):");
        double profit = sc.nextDouble(); // 單位:萬元
        double bonus = 0;

        if (profit <= 10) {
            bonus = profit * 0.10;
        } else if (profit <= 20) {
            bonus = 10 * 0.10 + (profit - 10) * 0.075;
        } else if (profit <= 40) {
            bonus = 10 * 0.10 + 10 * 0.075 + (profit - 20) * 0.05;
        } else if (profit <= 60) {
            bonus = 10 * 0.10 + 10 * 0.075 + 20 * 0.05 + (profit - 40) * 0.03;
        } else if (profit <= 100) {
            bonus = 10 * 0.10 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (profit - 60) * 0.015;
        } else {
            bonus = 10 * 0.10 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (profit - 100) * 0.01;
        }

        System.out.printf("應發獎金:%.2f 萬元%n", bonus);
    }
}

設計重點

  • 累進制邏輯:每個區間只對「超過下限」的部分按該稅率計算,避免重複計算。
  • 常數化閾值與稅率:實務上建議用陣列或 List 存儲區間邊界與稅率,便於維護擴充。
  • 精度處理:金額計算建議使用 BigDecimal 避免浮點誤差。

資料導向重構範例

static class Bracket { double limit; double rate; }
static final Bracket[] BRACKETS = {
    {10, 0.10}, {20, 0.075}, {40, 0.05}, {60, 0.03}, {100, 0.015}, {Double.MAX_VALUE, 0.01}
};

public static double calcBonus(double profit) {
    double bonus = 0, prev = 0;
    for (Bracket b : BRACKETS) {
        if (profit > b.limit) {
            bonus += (b.limit - prev) * b.rate;
            prev = b.limit;
        } else {
            bonus += (profit - prev) * b.rate;
            break;
        }
    }
    return bonus;
}

資料驅動方式更符合開放封閉原則(OCP),新增區間只需修改陣列。

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