SQL Server为浮点数增加了额外的精度?

时间:2009-07-29 21:11:15

标签: sql-server floating-point

精确损失是一回事,但精度增加???

我有一个带有以下坐标的文本文件:

41.88694340165634   -87.60841369628906

当我将其粘贴到SQL Server Mgmt Studio表视图中时,会产生以下结果:

41.886943401656339  -87.608413696289062

我在做梦吗?这怎么可能?

我从记事本中粘贴,这是原始文本。如果我直接输入字符也会出现同样的问题。

sql server从哪里获得额外的精度?

3 个答案:

答案 0 :(得分:6)

它不是在增加精度,而是将其四舍五入到最近的IEEE浮点表示。当你将它转换回十进制时,它只是看起来像它获得了精确度。

答案 1 :(得分:3)

根据在线书籍:

  

Float:用于浮点数字数据的近似数字数据类型。 浮点数据是近似值;因此,并非数据类型范围中的所有值都可以准确表示。

强调我的。

答案 2 :(得分:1)

我没有亲眼见过这个,但可能只是SQL服务器管理工​​作室显示了浮点数的“表示”,即值将如何存储在数据库中。请记住,漂浮物无论如何都是近似的。