Decimal vs Money数据类型

时间:2014-04-30 16:44:52

标签: sql sql-server-2008

Money数据类型已用于表格中的VendorHoursOverTimeExpenses等列。

我正在设计另一个与该表相关的表,并且具有相似的列,但我正在考虑使用decimal数据类型而不是money,因为十进制更精确。

后来我发现正在使用money数据类型,因为它需要8个字节,而十进制使用10表示10-19精度。

像Visit Hour,OverTime这样的列将使用Precision 9适合十进制,并且只需要5个字节。那么使用十进制(9,2)代替钱是个好主意吗?

我将对报告存储过程中的那些字段进行大量计算。

1 个答案:

答案 0 :(得分:4)

这取决于...如果您不对除了加或减之外的值做任何事情......没有问题。如果你要做任何其他事情(比如乘法或除法),你需要至少4个小数位来进行计算,而不会失去整体准确性。

MONEY更准确地表示现实世界的情况,其中每个值四舍五入到计算的最接近的分数,然后平均值再次舍入。在一个较长的计算链中,差异可能会大大超过一分......但由于业务逻辑约束所有中间值都包含非小数分数,因此MONEY结果将是准确的,而&#34更精确" DECIMAL不会。