0
我明白float and real are:Real和浮点数的小数长度和准确性
近似数数据类型与浮点数字 数据使用。浮点数据是近似的;因此,不是所有的值都可以精确地表示数据类型范围 。
然而,在下面的例子:
Q1:为什么'浮动()'(即;真实)给出更小数比“浮动( )'还不够准确?
Q2:如何存放@s在许多领域,因为它是不四舍五入?
declare @s varchar(50) = '34.770438199999944'
select convert(float(24), @s) real_, convert(float(53), @s) float_
Results(括号内是使DIFF更清晰)
| real_ | float_ |
------------------------------------
| 34.77043(9147949) | 34.77043(82) |
你能解释一下'精度较低,因为它有较少的数据来存储数字'?是关于浮动还是真实? – Kaf 2013-02-27 16:31:50
那么..每个数字或者是浮点数都表示在多个位上。例如1个字节= 8位。它可以保存0到255之间的数字(2^8个数字)。如果你去2个字节的数字,你会有2^16等等。使用浮点数的推理是相似的,但数字不是按原样存储的,而是以2位数字的形式存储的:有效数字和指数。有了这2,你可以近似一个非常大的数字范围。现在float和real用不同的字节数表示。具有更多字节来存储其中的2个数字的浮点可以更准确地保存数据。 – 2013-02-27 17:08:34