精确损失是一回事,但精度增加???
我有一个带有以下坐标的文本文件:
41.88694340165634 -87.60841369628906
当我将其粘贴到SQL Server Mgmt Studio表视图中时,会产生以下结果:
41.886943401656339 -87.608413696289062
我在做梦吗?这怎么可能?
我从记事本中粘贴,这是原始文本。如果我直接输入字符也会出现同样的问题。
sql server从哪里获得额外的精度?
答案 0 :(得分:6)
它不是在增加精度,而是将其四舍五入到最近的IEEE浮点表示。当你将它转换回十进制时,它只是看起来像它获得了精确度。
答案 1 :(得分:3)
根据在线书籍:
Float:用于浮点数字数据的近似数字数据类型。 浮点数据是近似值;因此,并非数据类型范围中的所有值都可以准确表示。
强调我的。
答案 2 :(得分:1)
我没有亲眼见过这个,但可能只是SQL服务器管理工作室显示了浮点数的“表示”,即值将如何存储在数据库中。请记住,漂浮物无论如何都是近似的。