2009-01-26 83 views
2

我需要編寫將根據指定的選項格式化值的代碼。格式化數字的最佳設計模式是什麼?

現在可以選擇幾種格式選項:以指定的精度舍入/截斷數字,添加前綴(例如$)或後綴(例如%),分組數千(應用逗號),添加數字縮寫九巴)。

因此,例如, 1857年數字可以顯示爲$ 2K或$ 1.86K或$ 1,867

起初,我想過使用裝飾模式對於這一點,但我不知道,因爲格式化應該在一個特定的順序應用,e.g。起初我需要申請九巴轉換:1857年 - > 1.857 K,然後繞着它1.86 K.

你有什麼建議嗎?

感謝,matali

+0

好主人。有人已經讀太多GOF ... – 2009-01-26 21:03:18

+0

「小男孩與一個模式」再次來襲綜合徵... – duffymo 2009-01-26 21:08:54

回答

12

不,使用已經提供給您的java.text.NumberFormat中的選項。他們已經完全國際化了。

0

假設有沒有適合您的需要有比裝飾等不同的選擇現有的實現:

如果你能分解在規則的格式(小數點分隔符,千位分隔符,貨幣),那麼一個責任鏈(http://www.dofactory.com/Patterns/PatternChain.aspx)其中每個塊處理的規則可以是一個選項,您可以在特定的順序上運行它。

相關問題