2013-12-10 43 views
4

我需要在存儲貨幣(美元和美分)的CF Orm實體中創建一個屬性。例如:100.99或1.30等我傳統上使用十進制來存儲貨幣,因爲您可以計算小數點的數量,但沒有ORM屬性類型爲小數,只有浮點數。我嘗試設置scale = 2,但是(例如)1.30被存儲爲1.3,或者5.00被存儲爲5.使用Coldfusion Orm存儲貨幣

任何人都可以使用CF ORM提示使用貨幣(有2個小數位)的最佳方式嗎?

非常感謝

回答

6

Bob Silverberg在ColdFusion ORM數據類型「CF9 ORM - Experimenting with type vs ormtype」上有一篇很好的博客文章。

我個人更喜歡將貨幣存儲爲其基本單位的整數,例如分130美元,1.30美元,然後在演示時處理小數位。在處理浮點值的計算時,它還有助於避免可能的舍入錯誤。

+0

真是個好主意。我一直以字節而不是KB或MB存儲文件大小。從來沒有想過採用與貨幣相同的方法。 – CfSimplicity

2

那麼有根據文檔是一個big_decimalormtype。另外不要忘記,sqltype屬性以及ormtype之一。請參閱文檔:「Map the properties」。 sqltype(和scaleprecision)將允許您適當地設置數據庫列。這就是說,這意味着CF(任何小數位數)和DB(你可以強制到2DP)之間有一個斷開關係,這有點廢話。我不知道如果這是一種自動化截斷的方法......您可能需要創建一個setter()方法來處理它。