我正在为银行机构建立申请,其中货币交易的准确性非常重要.我正在考虑Money在SQL Server 中使用数据类型.
所以我需要建议我使用的数据类型是否足以提供准确性?如果我使用numeric数据类型或Money数据类型,我还想知道哪一个更好?
提前致谢
SQL Server联机丛书中的快速搜索将揭示....
money
-922,337,203,685,477.5808 to 922,337,203,685,477.5807 8 bytes
smallmoney
- 214,748.3648 to 214,748.3647 4 bytes
Run Code Online (Sandbox Code Playgroud)
money和smallmoney数据类型精确到它们所代表的货币单位的万分之一.(小数点后的四位数)
具有固定精度和比例的数字数据类型.
decimal[ (p[ ,s] )] and numeric[ (p[ ,s] )]
Run Code Online (Sandbox Code Playgroud)
固定精度和刻度数.使用最大精度时,有效值为- 10 ^ 38 +1到10 ^ 38 - 1.十进制的ISO同义词是dec和dec(p,s).numeric在功能上等效于十进制.
p(精度)
小数点左侧和右侧可存储的最大小数位数.精度必须是从1到最大精度为38的值.默认精度为18.
s(规模)
可以存储在小数点右侧的最大小数位数.比例必须是从0到p的值.只有在指定精度时才能指定比例.默认比例为0; 因此,0 <= s <= p.根据精度,最大存储大小会有所不同.
Numeric(或者Decimal相同)当然具有更大的范围 - 您可以调整小数点之前或之后需要的位数.
另一方面 - 甚至Money准确到十分之一千美元或欧元或您感兴趣的任何货币 - 即使对于银行来说也是如此......
所以基本上:
如果您需要小数点后超过4位有效数字,或小数点前超过15位数 - 选择NUMERIC/DECIMAL
否则,MONEY会很好
| 归档时间: |
|
| 查看次数: |
1963 次 |
| 最近记录: |