This question already has answers here:
Set back default floating point print precision in C++
(5个答案)
5年前关闭。
我已经在网上搜索了,但是找不到我需要的东西。
有人建议使用
但我无法正常工作。
setprecision后如何将 double 值设置回原始状态?
显然,上面的代码不会返回a的原始值。
我的预期输出是:如果用户输入1.267432
使用方法如下:
引用:setprecision。
Run live.
(5个答案)
5年前关闭。
我已经在网上搜索了,但是找不到我需要的东西。
有人建议使用
streamsize ss = std::cout.precision();
但我无法正常工作。
setprecision后如何将 double 值设置回原始状态?
#include <iostream>
using namespace std;
int main()
{
double a;
cout << "enter a double value: ";
cin >> a;
cout << "your value in 3 decimals is " << setprecision(3) << fixed << a << endl;
cout << "your original value is " << a << endl;
return 0;
}
显然,上面的代码不会返回a的原始值。
我的预期输出是:如果用户输入1.267432
your value in 3 decimals is 1.267
your original value is 1.267432
最佳答案
为此,必须在使用setprecision()
之前获得精度。在您的问题中,您已经通过以下行提到了它:
streamsize ss = std::cout.precision();
使用方法如下:
streamsize ss = std::cout.precision();
double a = 1.267432;
std::cout << "a = " << a << '\n';
std::cout.precision (3);
std::cout << "a becomes = " << a << '\n';
std::cout.precision (ss);
std::cout << "Original a= " << a << '\n';
输出将是这样的:引用:setprecision。
Run live.
关于c++ - setprecision后恢复原始值? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33407444/
10-11 11:24