【发布时间】:2016-03-03 00:34:20
【问题描述】:
所以我知道在打印精度为n 的双精度值时应该使用setprecision(int n)。但是,我在一个与此代码类似的项目上遇到了问题:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double var = 1.0000001;
cout << setprecision(10) << var << endl;
string str = to_string(var);
cout << str << endl;
return 0;
}
这是输出:
1.0000001
1.000000
在我正在处理的项目中,我需要将双精度值保存为字符串,并且它有时需要超过六位小数的精度。在这里,精度显然在转换中丢失了。任何指针将不胜感激。
【问题讨论】: