我有点像数据类型的菜鸟。我正在查看SQL Server中所有数字数据类型的差异,然后看到一个回答:
十进制精度固定,而float精度可变
我知道Precision是数字中的位数。具体来说,我不知道固定精度和可变精度之间有什么区别。
答案 0 :(得分:2)
您是正确的,精度是数字中的位数。
在这种情况下,精度有两种:固定精度和可变精度
已修复:
任何特定数字的位数是相同的。
变量:
任何数字中的位数可能会因数字而异。
此声明...
十进制精度固定,而float精度可变
在小数可以保持固定值的情况下,在这种情况下,最有可能出现精度变化,这意味着如何根据将要使用该特定数字进行的实际“计算”来确定可变长度有效数字(有时是指数)的大小。这可能与任意精度浮点算法有关。
更不用说如何以尾数位存储浮点数的意义,以及在计算结果是如此精确以至于您可以将其定义为100%精确度的情况下,它们通常是不精确的,PI)。
这是我最好的解释,但我同意那句话的措辞可能有点含糊。也许更多的上下文足以正确回答这个问题。
编辑:一些评论者提出了很好的观点。以下是一些有用的链接:
https://en.wikipedia.org/wiki/Floating-point_arithmetic
https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-2017
祝你好运。