为什么我在这里得到0而不是0.5?

Paw*_*uda 0 c++ math

可能重复:
C++中的分区无法按预期工作

原来我的程序一直在返回错误的结果,所以我决定将代码分解成小块.设置断点后,原来......

double test3 = ((2 - 1) / 2);
Run Code Online (Sandbox Code Playgroud)

...根据C++编译器等于0.我不知道为什么.有人可以向我解释一下吗?

我正在使用MS Visual Studio Premium 2012

jua*_*nza 5

因为你正在进行整数除法.1/20,然后转换为double,屈服0..如果您想要浮点除法,请尝试将除法的一个参数设为浮点数:

double test3 = (2.0-1)/2;
Run Code Online (Sandbox Code Playgroud)