gpt4 book ai didi

sql-server - 需要有关 SQL Server 中 MONEY 数据类型准确性的帮助

转载 作者:行者123 更新时间:2023-12-03 11:18:23 25 4
gpt4 key购买 nike

我正在为一家银行机构开发一个应用程序,其中货币交易的准确性非常重要。我正在考虑在 SQL Server 中使用数据类型 Money

所以我需要建议我使用的数据类型是否足以提供准确性?我还想知道如果我使用 numeric 数据类型或 Money 数据类型哪个更好?

提前致谢

最佳答案

SQL Server Books Online 中快速搜索会透露....

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

money 和 smallmoney 数据类型精确到它们所代表的货币单位的十分之一(小数点后四位)


具有固定精度和小数位数的数值数据类型。

decimal[ (p[ ,s] )] and numeric[ (p[ ,s] )]

固定精度和比例数字。使用最大精度时,有效值为从 - 10^38 +1 到 10^38 - 1。十进制的 ISO 同义词是 dec 和 dec(p, s)。 numeric 在功能上等同于 decimal。

p(精度)

小数点左边和右边可以存储的小数位数的最大总数。精度必须是 1 到最大精度 38 之间的值。默认精度为 18。

s(比例)

小数点右边可以存储的最大小数位数。比例必须是从 0 到 p 的值。仅当指定精度时才能指定比例。默认比例为 0;因此,0 <= s <= p。最大存储大小因精度而异。


Numeric(或相同的 Decimal)当然具有更大的范围 - 您可以调整小数点前后所需的位数。

另一方面 - 即使 Money 也能精确到美元或欧元或任何你感兴趣的货币的千分之一 - 这通常足够了一家银行....

所以基本上:

  • 如果您需要小数点后超过 4 位有效数字,或小数点前超过 15 位 - 选择NUMERIC/十进制

  • 否则,MONEY就可以了

关于sql-server - 需要有关 SQL Server 中 MONEY 数据类型准确性的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6828514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com