重置std :: setprecision和std :: fixed

时间:2018-10-14 19:11:23

标签: c++ io formatting outputstream

假设我有以下程序,在该程序中,我打印小数点0.1234和0.5,然后格式化输出,使其只给出2个小数位。然后,我打印出一些十进制数字。

#include <iostream>
#include <iomanip>

int main() {
    // print out 2 decimals of different lengths
    std::cout << 0.1234 << " " << 0.5 << std::endl;

    // format output
    std::cout << std::fixed << std::setprecision(2);
    for (int i = 0; i < 5; i++)
        std::cout << i / 7.0 << std::endl;

    // print out a decimal with 4 significant figures
    std::cout << 0.9876 << std::endl;               // this line

    return 0;
}

代码提供以下输出:

0.1234 0.5
0.00
0.14
0.29
0.43
0.57
0.99

对于显示std::cout << 0.9876 << std::endl;的行,我希望它打印出0.9876,就像第一行打印出0.1234一样。

我知道我可以使用std::fixed来颠倒std::defaultfloat,但是如何颠倒setprecision?

我不想在代码中使用特定数字,因此C ++是否具有默认值?例如std::cout << std::setprecision(FLOAT_DEFAULT) << std::endl;

非常感谢你们!

0 个答案:

没有答案