固定精度和可变精度之间有什么区别?

时间:2018-12-30 08:08:48

标签: sql-server

我有点像数据类型的菜鸟。我正在查看SQL Server中所有数字数据类型的差异,然后看到一个回答:

  

十进制精度固定,而float精度可变

我知道Precision是数字中的位数。具体来说,我不知道固定精度和可变精度之间有什么区别。

1 个答案:

答案 0 :(得分:2)

您是正确的,精度是数字中的位数。

在这种情况下,精度有两种:固定精度和可变精度

已修复:

  

任何特定数字的位数是相同的。

变量:

  

任何数字中的位数可能会因数字而异。

此声明...

  

十进制精度固定,而float精度可变

在小数可以保持固定值的情况下,在这种情况下,最有可能出现精度变化,这意味着如何根据将要使用该特定数字进行的实际“计算”来确定可变长度有效数字(有时是指数)的大小。这可能与任意精度浮点算法有关。

更不用说如何以尾数位存储浮点数的意义,以及在计算结果是如此精确以至于您可以将其定义为100%精确度的情况下,它们通常是不精确的,PI)。

这是我最好的解释,但我同意那句话的措辞可能有点含糊。也许更多的上下文足以正确回答这个问题。

编辑:一些评论者提出了很好的观点。以下是一些有用的链接:

https://en.wikipedia.org/wiki/Floating-point_arithmetic

https://docs.microsoft.com/en-us/sql/t-sql/data-types/precision-scale-and-length-transact-sql?view=sql-server-2017

https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-2017

祝你好运。