SQLServer:两个相除结果小于1,如何得到正确结果。

declare @a decimal(18,4)
set @a=6/7
print @a

为什么得到的结果为:0.0000

如果我想得到0.8571应该怎么写

 begin
declare @a decimal(18,4)
set @a=6*1.0/7
print @a
end;

你可以试试用real或者float类型来定义。
或者你把除法运算改成6.0/7.0试试。

希望能帮到你。

set @a=6/7;//6/7是取整,因为@a是decimal的,所以获取的是0.0000;
你set @a=6%7;//看看,这样是取余数

6,7都int整形,得到的结果也是int整形,所以6/7的结果是0,又因为你的decimal设置所以结果会是0.0000;整形相除时想得到小数值,必须有一个参数不是整形的,可以6/7.0或6.0/7或6.0/7.0这都是可以的

把6或者7换成6.0或者7.0即可。

real或者float类型来定义。。