SQL Server 2008计算错误

MrP*_*ink 0 sql sql-server sql-server-2008

这是我正在运行的查询

Select (100/18)*18
Run Code Online (Sandbox Code Playgroud)

我得到的答案是90.我已经尝试将每个数字声明为小数,并且我得到了值100.0008,但是当我使用变量作为浮点数计算时,答案在'100'是正确的,所以有人知道为什么SQL计算像这样?

Yog*_*pta 7

因为它会首先影响到paranthesis

所以

Select (100/18)*18
Run Code Online (Sandbox Code Playgroud)

将(100/18)= 5.555555但它假设两个数字都为int因此它将结果转换为int所以它将返回5

所以现在 5*18 = 90

如果您想要正确的结果,请改为执行此操作 Select (100*18)/18