简单明了,有谁知道为什么:
Select 30 * 220 / 30
返回 220 ,这是正确的结果,并且:
Select 30 * (220/30)
返回 210 ???
在第二种情况下,我意识到首先计算220/30,生成小数(7,333333 ...)但仍然......这不是很糟糕吗?
答案 0 :(得分:4)
在整数除法220/30 = 7
和99/100 = 0
下(注意截断不舍入)
使用非整数来避免这种情况。例如Select 30 * (220/30.0)
或者您可以使用明确的cast
Select 30 * (220/cast (30 as float))
答案 1 :(得分:1)
括号中的那个总是首先被评估,但是由于你使用整数的机器逻辑,在这种情况下,除法的结果是7,你乘以30,给你210