【问题标题】:More precision needed from SQL Server Money data typeSQL Server Money 数据类型需要更高的精度
【发布时间】:2023-03-24 11:15:01
【问题描述】:

我正在研究这个旧的 SQL Server 数据库,它将数值存储在 MONEY 数据类型中。这多年来一直很好,现在对于某些货币汇率转换,我们需要最多 10 个小数位。我们正在探索从MONEY 数据类型到DECIMAL 的可能转换。

我看到MONEY 字段等同于DECIMAL(19, 4)。使用更广泛的 DECIMAL(25, 10) 来容纳 10 个十进制数字是否安全?

如果我们想为未来的请求确保更多空间,那将不再适合基于数据库构建的 Classic ASP 应用程序(使用 Double 数据类型)的限制是什么?

谢谢

【问题讨论】:

  • 哇...这是一个非常酷的问题。您使用哪种货币需要保留小数点后 10 位?
  • 1 日元 = 0.00810349 美元

标签: sql sql-server asp-classic sqldatatypes currency


【解决方案1】:

您应该将类​​型定义为 decimal(25,10),这可以将联邦赤字保持在 10 位的精度。 (25 位,小数点后十位)。

【讨论】:

  • 除了Classic ASP双精度数据类型只能处理15位有效数字。
  • 有什么比@Dijkgraaf 更好的解决方案?
  • 不要使用经典的 ASP ;-) 也许使用 ASP.NET 你有十进制类型,它有 29 个有效数字。
  • 双精度数是一个科学数字。它有一个指数和尾数,非常适合科学,但四舍五入的方式与小数不同。
猜你喜欢
  • 1970-01-01
  • 2019-10-09
  • 2018-05-07
  • 1970-01-01
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-12
相关资源
最近更新 更多