使用Coldfusion Orm存储货币

时间:2013-12-10 08:39:57

标签: orm coldfusion cfml

我需要在存储货币(美元和美分)的CF Orm实体中创建一个属性。例如:100.99或1.30等我传统上使用十进制来存储货币,因为你可以得到小数点,但没有小数的ORM属性类型,只有浮点数。我尝试设置scale = 2,但(例如)1.30存储为1.3,或5.00存储为5.

任何人都可以使用CF ORM建议使用货币(有两位小数)的最佳方式吗?

非常感谢

2 个答案:

答案 0 :(得分:6)

鲍勃·西尔弗伯格(Bob Silverberg)有一篇关于ColdFusion ORM数据类型的博客文章#34; CF9 ORM - Experimenting with type vs ormtype"。

我个人更喜欢将货币存储为其基本单位的整数,例如以130美元兑换1.30美元,然后在演示时处理小数位。在处理浮点值的计算时,它还有助于解决可能的舍入错误。

答案 1 :(得分:2)

根据文档,有一个big_decimal ormtype。而且不要忘记有sqltype属性以及ormtype属性。请参阅文档:“Map the properties”。 sqltype(以及scaleprecision)可让您正确设置数据库列。

也就是说,这意味着CF(任何小数位数)与DB(你可以强制为2DP)之间存在脱节,这有点废话。我不知道如果这是一种自动截断的方法......你可能需要创建一个setter()方法来处理它。