两个t-SQL(MS SQL 2017)查询:
Select 125. / -124/ 125.
Select 125. / (-124)/125.
仅在括号上有所不同。
但是,结果不相等:
-126.0080645161
-0.0080645120
为什么结果不同?
答案 0 :(得分:4)
第二种情况下括号的添加改变了操作顺序。为避免歧义,应明确指定括号。对于第一个结果,您应该使用:
SELECT 125. / (-124 / 125.)
第二种情况:
SELECT (125. / -124) / 125.
答案 1 :(得分:3)
解释是,在T-SQL中,* (Multiplication)
和/ (Division)
运算符的precedence比- (Negative)
运算符高。因此,准确评估的是:
体验1:125. / - (124 / 125)
等于:-126.0080645161
体验2:125. / (-124) / 125
等于:-0.0080645120
请注意,正确的结果是:-0.0080645120
。