我正在研究其他的东西,但一切都是零,所以我做了这个简约的例子,输出仍然是0.
#include <iostream>
int main(int argc, char** argv)
{
  double f=3/5;
  std::cout << f;
  return 0;
}
我错过了什么?
小智 51
你错过了3和5是整数的事实,所以你得到整数除法.要使编译器执行浮点除法,请使其中一个为实数:
 double f = 3.0 / 5;
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,这也是诀窍......
| 归档时间: | 
 | 
| 查看次数: | 57255 次 | 
| 最近记录: |