【问题标题】:data storage limitation issue数据存储限制问题
【发布时间】:2009-10-24 14:31:56
【问题描述】:

我面临一个问题,我将一列作为数字(38,0)

存储在此列中的数据超出范围,意味着它已达到其存储限制。我也试过 bigint ,但面临同样的问题。我不能把它当作 varchar 因为我必须在另一个计算中使用,所以那时我必须将它从 varchar 转换为 bigint ot numeric(38,0)。

那么,有没有办法存储高范围值。

【问题讨论】:

  • 你能说得更具体点吗?您存储的哪些数字需要超过 38 位数字,但您希望对其进行数学运算?
  • 假设一列(numeric (38,0)) 已存储值,即数字的最后一个限制。现在我想计算乘以 19.55 并且结果值应该存储在同一列中,然后它会给溢出错误。那么什么是替代解决方案或如何避免这个问题。
  • 您能否提供一个 38 位有效且需要乘以另一个小数的数字的示例?我知道您是说您有一个 DECIMAL(38,0) 需要乘以 19.55。但这个数字真正代表什么?您可以将其存储为 DECIMAL(36,0),然后将最后两位数字保留为统计上不相关,并在显示时添加小数位吗?您可以按照其他建议使用 FLOAT(53) 吗?

标签: sql sql-server database sql-server-2005 tsql


【解决方案1】:

浮点数可以处理非常大的数字。最精确的浮点数是具有 15 位精度的 float(53)。

【讨论】:

猜你喜欢
  • 2011-06-16
  • 2021-12-02
  • 2015-09-20
  • 2010-10-24
  • 1970-01-01
  • 2015-02-16
  • 2013-01-02
  • 2018-04-22
  • 1970-01-01
相关资源
最近更新 更多