在Microsoft SQL Server 2005中,为什么以下命令会产生整数结果?
SELECT cast(151/6 AS DECIMAL(9,2))
SELECT 151/6
答案 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)
答案 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;
}