我在SQL 2005中运行此sql代码
declare @a as float(24)
set @a=0.85
select cast ( @a as float(53))
,结果是
0.850000023841858
有谁知道为什么?
感谢。
答案 0 :(得分:2)
前七个数字是浮点数的默认精度等级,在声明浮点数(N)中,N的值为24或更小。在那之后,当转换为更高精度的浮点数时,数字可以显示为几乎任何东西。这就是'浮点'。
答案 1 :(得分:1)
您看到的数字尽可能接近计算机可以使用的数字,但可以使用许多二进制数字。
如果您尝试以十进制编写1/3,但只有8位数的空间,则最接近的是0.33333333
。这仍然是一个很好的方式,但如果你有更多的小数位,你可以得到更准确。这与计算机面孔完全相同,但每个连续数字代表1/10,1 / 100th,1 / 1000ths,计算机工作在1 / 2,1 / 4,1 / 8,1 / 16