sql server中的整数除法

时间:2010-08-09 19:56:23

标签: sql-server-2005

在Microsoft SQL Server 2005中,为什么以下命令会产生整数结果?

SELECT cast(151/6 AS DECIMAL(9,2))
SELECT 151/6

7 个答案:

答案 0 :(得分:40)

在第一个中,您获得两个整数的结果,然后将结果转换为DECIMAL(9,2)。在第二个你只是划分两个整数,这是预期的。

如果你将其中一个整数作为小数 BEFORE 进行分割,你会得到一个小数结果。

SELECT 151/CAST(6 AS DECIMAL (9,2))

答案 1 :(得分:32)

是的,这是标准行为

SELECT 151/6.0

SELECT 151/(CONVERT(DECIMAL(9,2),6))

SELECT 151/(6 * 1.0)

答案 2 :(得分:9)

因为151和6是整数而你正在进行整数除法,甚至在演员之前。

您需要确保至少有一个参数是浮点类型:

SELECT 151.0/6

或者

SELECT 151/6.0

答案 3 :(得分:4)

不能直接回答您的问题。如果您需要SSRS

,还需要查看Operators in Expressions
  

/ 除以两个数字并返回浮点结果。

     

\除以两个数字并返回整数结果。

     

Mod 返回除法的整数余数。

答案 4 :(得分:2)

您还需要为小数位提供占位符

实施例

SELECT 151.000000/6
OR
SELECT 151/6.000000

两者都会产生

25.16666666

答案 5 :(得分:1)

出于同样的原因,他们会使用c#,java和其他主流语言。

整数'算术',CAST是在数学之后......

答案 6 :(得分:0)

试试这个:

ul.icons{
    list-style: none;
    text-align: center;
}
ul.icons li {
    display: inline-block;
}