cout << -1/2求值为0-1/2评估为-1.为什么会这样?
当我注意到奇怪的东西时,我只是编写了一些东西:
2/3返回0,这是合乎逻辑的,因为它是0.6666666666666666,它被舍入为0,因为它是一个int.
int(2/3.0)返回相同,因为int(0.6666666666666666)返回0.
now:
-2/3.0返回-0.6666666666666666,这是合乎逻辑的,但是这里出现让我感到困惑的部分,
int(-0.6666666666666666)返回0(因为整数为0).
但是-2/3返回-1 ......
这是为什么?
这不也应该返回0吗?
毕竟int(-0.6666666666666666)返回0,那么为什么-2/3返回-1?
TL; DR:2/3 == 0但是-2/3 != 0?
最好的问候,Sjaak.