将整数与双数相除

问题描述 投票:0回答:1

我是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,我们正在除以双精度,所以我很困惑。

c++ double division
1个回答
0
投票

std::cout.precision(n);表示要使用的最大位数n,而不是最小值。请记住,尾随的零将被自动丢弃,这是将3除以3.0时的结果,结果为1.000 ...,但是零被丢弃了。如果您想一直获取n数字,则必须使用std::fixed,如下所示:

cout << fixed;
cout << setprecision(2);
© www.soinside.com 2019 - 2024. All rights reserved.