【问题标题】:How to manipulate and store precise numbers in sql server如何在sql server中操作和存储精确的数字
【发布时间】:2011-08-02 18:53:59
【问题描述】:

如何存储小数位数可变的数字?我猜可能有 1 到 100 个小数点。浮点数据类型有什么问题?为什么他们称它为近似数字?十进制很好,但据我所知,它是一种固定精度的数据类型。有没有关于精确数字的好文章?我的数据库将与 .net 前端交互,我还需要在前端显示这些精度。

【问题讨论】:

  • 小数点后100位?我认为在火星上着陆探测器不需要那么精确。
  • 请更准确地说明您要实现的目标...
  • 估计可观测宇宙中有10^80个原子。您想存储一个 1/10^100 的数字。您可能对精度要求有些不切实际。

标签: sql sql-server sql-server-2008-r2


【解决方案1】:

来自维基:

术语浮点是指小数点 (小数点,或者,在计算机中更常见的是二进制点)可以 “漂浮”;也就是说,它可以放置在相对于 数的有效数字。这个位置表示 分别在内部表示和浮点 因此,表示可以被认为是计算机实现 科学计数法。多年来,几种不同的浮点 表示已在计算机中使用;然而,在过去的十 年最常见的表示是由 IEEE 754 标准。

浮点表示相对于定点表示的优势(以及 integer) 表示是它可以支持更广泛的 价值观。例如,一个有七个的定点表示 有两位小数的十进制数字,可以表示数字 12345.67、123.45、1.23 等等,而浮点数 表示(如 IEEE 754 十进制 32 格式)与七个 十进制数字还可以表示 1.234567、123456.7、 0.00001234567、1234567000000000 等等。浮点格式 需要更多的存储空间(编码基数的位置 点),所以当存储在同一个空间中时,浮点数 以牺牲精度为代价实现更大的范围。

请参阅http://msdn.microsoft.com/en-us/library/ms187746.aspx 了解定点数据。

使用原始数据类型的最佳值是 38。如果您真的想要 100 个位置,可以使用 varchar 并在应用程序中实现操作。

【讨论】:

    猜你喜欢
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    相关资源
    最近更新 更多