我是c ++的初学者(通常是编码),所以我有一个非常简单的问题。
cout << setprecision(2);
for(int i=3; i>0; i--){
cout << i/3.0 << " ";
}
上面的代码给出输出:1 0.67 0.33为什么i = 3返回整数,而i = 2和i = 1返回双数?精度设置为2,我们正在除以双精度,所以我很困惑。
std::cout.precision(n);
表示要使用的最大位数n
,而不是最小值。请记住,尾随的零将被自动丢弃,这是将3除以3.0时的结果,结果为1.000 ...,但是零被丢弃了。如果您想一直获取n
数字,则必须使用std::fixed
,如下所示:
cout << fixed;
cout << setprecision(2);