这是我正在运行的查询
Select (100/18)*18
我得到的答案是90.我已经尝试将每个数字声明为小数,并且我得到值100.0008
,但是当我使用变量作为浮点数计算时,答案在'100'时是正确的,所以有没有人知道为什么SQL计算这样?
答案 0 :(得分:7)
因为它会首先影响paranthesis
所以
Select (100/18)*18
将(100/18)= 5.555555,但它假设两个数字都为int,因此它会将结果转换为int,因此它将返回5
所以现在5*18 = 90
如果您想要正确的结果,请改为Select (100*18)/18
答案 1 :(得分:2)
要获得所需的结果,您应该尝试这样的事情:
Select CEILING((100/18.0)*18)
当你这样做时,
Select (100/18)*18
sql server将操作视为整数除法,并选择100/18作为5.55555的5个实例....
答案 2 :(得分:1)
尝试将数字表示为十进制数
SELECT (100.0/18)*18
和
SELECT ROUND((100.0/18)*18,2)
...
答案 3 :(得分:0)
你可以试试这个
select abs(18*100/18)