我正在研究其他的东西,但一切都是零,所以我做了这个简约的例子,输出仍然是0.
#include <iostream>
int main(int argc, char** argv)
{
double f=3/5;
std::cout << f;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
小智 51
你错过了3和5是整数的事实,所以你得到整数除法.要使编译器执行浮点除法,请使其中一个为实数:
double f = 3.0 / 5;
Run Code Online (Sandbox Code Playgroud)
lef*_*out 17
它并不需要是.0
,你还可以做3./5
或3/5.
或3e+0 / 5
或3 / 5e-0
或0xCp-2 / 5
或......有只需要一个指标涉及这样编译器知道它应该执行除法浮点.
另一种可能性:double f=double(3)/5
.这更像打字,但毫无疑问你正在做什么.
或者只是使用double f=.6
,这也是诀窍......