Money
数据类型已用于表格中的VendorHours
,OverTime
,Expenses
等列。
我正在设计另一个与该表相关的表,并且具有相似的列,但我正在考虑使用decimal
数据类型而不是money
,因为十进制更精确。
后来我发现正在使用money数据类型,因为它需要8个字节,而十进制使用10表示10-19精度。
像Visit Hour,OverTime这样的列将使用Precision 9适合十进制,并且只需要5个字节。那么使用十进制(9,2)代替钱是个好主意吗?
我将对报告存储过程中的那些字段进行大量计算。
答案 0 :(得分:4)
这取决于...如果您不对除了加或减之外的值做任何事情......没有问题。如果你要做任何其他事情(比如乘法或除法),你需要至少4个小数位来进行计算,而不会失去整体准确性。
MONEY更准确地表示现实世界的情况,其中每个值四舍五入到计算的最接近的分数,然后平均值再次舍入。在一个较长的计算链中,差异可能会大大超过一分......但由于业务逻辑约束所有中间值都包含非小数分数,因此MONEY结果将是准确的,而&#34更精确" DECIMAL不会。