这是我正在运行的查询
Select (100/18)*18
我得到的答案是 90。我已经尝试将每个数字也声明为小数,并且我得到了值100.0008
,但是当我用变量作为浮点数进行计算时,答案在“100”处是正确的,所以有人知道为什么 SQL 计算像这样?
这是我正在运行的查询
Select (100/18)*18
我得到的答案是 90。我已经尝试将每个数字也声明为小数,并且我得到了值100.0008
,但是当我用变量作为浮点数进行计算时,答案在“100”处是正确的,所以有人知道为什么 SQL 计算像这样?
因为它会首先取消括号
所以
Select (100/18)*18
will (100/18) = 5.555555 但它假设两个数字都是 int 所以它将结果转换为 int 所以它会返回 5
所以现在5*18 = 90
如果您想要正确的结果,请改为执行此操作Select (100*18)/18
为了得到想要的结果,你应该尝试这样的事情:
Select CEILING((100/18.0)*18)
当你这样做时,
Select (100/18)*18
sql server 将运算视为整数除法,并将 select 100/18 as 5 instaed of 5.55555....
尝试表达 numders ac 十进制数
SELECT (100.0/18)*18
和
SELECT ROUND((100.0/18)*18,2)
...
你可以试试这个
select abs(18*100/18)