如何在C++中使用setprecision

Mal*_*lik 16 c++

我是新手C++,我只想输出我的点数最多2位数.就像数字是3.444,那么输出应该是,3.44或者如果数字99999.4234然后输出应该是99999.42,我怎么能这样做.价值是动态的.这是我的代码.

#include <iomanip.h>
#include <iomanip>
int main()
{
    double num1 = 3.12345678;
    cout << fixed << showpoint;
    cout << setprecision(2);
    cout << num1 << endl;
}
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误,未定义的固定符号.

pio*_*kuc 28

#include <iomanip>
#include <iostream>

int main()
{
    double num1 = 3.12345678;
    std::cout << std::fixed << std::showpoint;
    std::cout << std::setprecision(2);
    std::cout << num1 << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 您确定您逐字复制了答案中的包含语句吗? (3认同)
  • @Game_Of_Threads 你不能。哪有这回事。`double` 的精度是固定的;它是数据类型的固有部分。我们在这里所做的是在打印供人类消费的数字时改变 _apparent_ 精度。 (3认同)
  • @Pradyot FYI,`int main()`可以没有返回值,此时它默认返回0. (2认同)
  • 如果我不想做cout。只想将 `num1` 的精度设置为 3 个小数位。我怎么做 ? (2认同)

小智 7

#include <iostream>
#include <iomanip>
using namespace std;
Run Code Online (Sandbox Code Playgroud)

using namespace std;为方便起见,您可以输入该行.否则,你必须明确地添加std::每次你想使用时间cout,fixed, showpoint,setprecision(2)endl

int main()
{
    double num1 = 3.12345678;
    cout << fixed << showpoint;
    cout << setprecision(2);
    cout << num1 << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)