2005年和2000年的SQL舍入问题

时间:2010-04-12 19:25:20

标签: sql-server-2005 sql-server-2000 rounding rounding-error

我在数据库中有一个值为2.700000002的值。当我在SQL SERVER 2005中的Management studio中运行查询时,我得到2.7。但是,当我在SQL SERVER 2000查询分析器中运行时,它来自2.700000002。

2.70000002是正确的为什么SQL SERVER 2005试图通过舍入或选择最低值来改变值?

2 个答案:

答案 0 :(得分:2)

完全相同的目标服务器,数据库,数据类型,处理器,架构等?

如果没有,则只是工具将如何显示近似浮动值

答案 1 :(得分:0)

大多数事情都会将数字四舍五入以便显示。

~$ ghci
Prelude> 2.7
2.7
~$ irb
>> 2.7
=> 2.7
~$ python
>>> 2.7
2.7000000000000002

对于交互式使用,这通常足够好 - 唯一可以查看查询分析器的人就是你,为什么这很重要?对于实际显示,您应该指定格式。如果你确实需要"2.7"的确切值,那么无论如何你应该使用十进制类型,因为无数的文章和答案可以告诉你。