规模与精度 - 为什么这个定义?

ikw*_*iet 5 sql-server datatypes terminology t-sql

来自关于 T-SQL/SQL Server的 Microsoft文档

精度是数字中的位数。小数位数是数字中小数点右侧的位数。例如,数字 123.45 的精度为 5,小数位数为 2。

对于天真的非专家(=我)来说,这总是有点令人困惑。我本来以为反过来的。

  • 如何在总位数涉及到的日常概念精度(如何“精确”的东西是衡量)?
  • 我怎么能想到的小数位数来讲规模(“大”的东西是如何)?

需要明确的是:这不是伪装成问题的咆哮,而不仅仅是好奇。我相信这个术语有很好的理由,我认为我可以通过理解这里的底层思想来了解数据库。(如果认为这个问题在这里太基本了,我理解。)

Joh*_*ner 6

精度和比例基于有效数字的数学概念。您并不孤单,因为这些术语的当前定义/用法令人困惑。

总位数与精度的日常概念(如何“精确”测量某物)有何关系?

首先,你必须记住,计算机中的一切都是用二进制表示的;然而,并非所有数字都可以使用二进制语法轻松表示,特别是在涉及某些分数时。一个这样的分数,?,实际上是不可能在计算机中表示的。即使拥有尽可能大的内存,计算机也永远无法完全表示 ? 以二进制形式。但是,它可以更精确(例如接近)到 ? 抛出更多位(例如,因此是小数位)。

因此,可以将精度视为您想要表示的数字的精确程度。用于定义数字的数字越多,数字就越精确。

我怎么能想到小数点的小数位数(某物有多大)?

比例可能最好通过我们如何看待地图来解释。州或省的地图以较少的细节显示更大的区域,而城市的地图以更详细的方式显示较小的区域。

因此,比例可以被认为是细节数量。我们想要传达的更多细节是以展示更少实际内容为代价的。

我不知道这是否对您有帮助,但希望这有助于提供这些术语定义背后的一些背景。


Tom*_*Tom -3

你错过了一件关键的事情。过去是残酷的批评,现在对任何不做琐碎工作的人来说都是批评。

贮存。

总位数对存储有直接影响,从而对所需的 GB 和 IOPS 有直接影响。然后您将一部分分配给精度。

作为日常概念,位数根本没有任何意义。但我们这些处理大型数据库的人常常忍受它。在一千亿行数据上节省少量字节对于性能来说并不完全是坏事。

这只是一种思维方式——从分配存储开始,然后划分精度。