为什么SQL server 2005中查询选择(1/2)*100返回0而不是50

为什么SQL server 2005中查询选择(1/2)*100返回0而不是50,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我希望得到50作为输出,而不是0。这可能是因为SQL Server使用整数算法进行计算。1/2的整数部分是0,0*100=0。它可能对1/2进行整数除法,将其计算为0,因此整个语句为零 这是因为整数除法1/2=0,0*100=0 使用1/2.0*100代替至少在C#、Java和VB.net中使用相同的:整数算术 为什么您希望SQL在对其他语言的表达式求值时会有所不同?或者交换乘除顺序:1*100/2

我希望得到50作为输出,而不是0。

这可能是因为SQL Server使用整数算法进行计算。1/2的整数部分是0,0*100=0。

它可能对1/2进行整数除法,将其计算为0,因此整个语句为零

这是因为整数除法<代码>1/2=0,
0*100=0

使用
1/2.0*100
代替至少在C#、Java和VB.net中使用相同的:整数算术


为什么您希望SQL在对其他语言的表达式求值时会有所不同?

或者交换乘除顺序:1*100/2