🎯 什麼情境該想到我
當你「要正確表示與計算金額、還得處理幣別」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:用一個專門的值物件表示金額與幣別,避免浮點誤差與幣別混算。
做法要點:
- 內部用整數(最小貨幣單位,如「分」)保存金額,別用浮點數,避免累積誤差。
- 一併帶著幣別;不同幣別不可直接相加,換算需經匯率。
- 提供分配(allocate)方法處理除不盡的尾差,確保各份加總仍等於原額、一分不差。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 別用浮點型別存錢;這正是本模式要避免的坑。
- 混算不同幣別要先換算,並定義好進位規則。
- 是值物件的特例,故通常不可變、依值相等。
🔗 相關工具
- 值物件 Value Object(金錢是值物件的具體應用)
- 企業應用架構模式