当我包含括号时,[C ++]运算符出现故障? [重复]

问题描述 投票:-6回答:2

这个问题在这里已有答案:

当我执行12*20/100时,我得到2作为输出

但是当我执行12*(20/100)时,我得到0作为输出

那么有人知道为什么括号会影响输出吗?

c++ algorithm data-structures
2个回答
1
投票

这是因为(20/100)作为整数除法评估为0。使用(20.0/100)来获得0.2。没有括号你有240 / 100 = 2(作为整数)


0
投票

在数学中,括号对你的表达无关紧要。

但C ++计算(尤其是整数运算)不是数学。你已经明白了,因为你接受12*20/1002而不是2.4

设置括号定义首先计算的内容(如数学),所以12*(20/100)首先计算20/100,给0,然后12*0,给0

© www.soinside.com 2019 - 2024. All rights reserved.