2012-04-19 36 views
2

我正要通过questionSQL给人Erroreneous结果

于是,我就计算它自己和检查结果.. 但总是结果我得到的是一个圆形的值。为什么?

其实我应该得到0.1428 ......

enter image description here

@Everyone谁回答:谢谢大家,按照SO规则我能接受的答案只有一个,所以接受最早的那个人。

+0

当然,这是唯一的*隐含位*所有的答案是, ,当SQL Server正在评估一个操作时,它只考虑该操作涉及的数据类型。它不会评估将接收计算结果的变量/列的类型。 (这似乎部分是你期望的) – 2012-04-19 12:28:20

+0

@Damien_The_Unbeliever:显式语句 - “该操作中涉及的数据类型”和“它不评估将接收该计算结果的变量/列的类型“。更有意义!谢谢 – Marshal 2012-04-19 12:31:27

回答

3

尝试

select 2.0/14 

如果您使用整数结果将是整过。整数并不浮点数

2

整数除法2/14的结果始终为0

尝试2.0/14.0代替。

2

你在做integer division

至少有一个操作数需要是浮点/小数才能使整个表达式评估为其中一种类型。

2

SELECT 2.0/14

需要小数位“触发”浮点

+0

5个答案!我需要键入更快:( – Paddy 2012-04-19 12:15:34