所以我知道 setprecision(int n)
应该在打印精度为 n
的 double 值时使用。但是,我在我正在处理的项目中遇到了一个类似于此代码的问题:
#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
在我做的项目中,需要将double值保存为字符串,偶尔会需要小数点后六位以上的精度。在这里,精度显然在转换中丢失了。任何指针将不胜感激。
最佳答案
这是 to_string 的引用.请注意,它会生成“根据需要写入尽可能多的数字来表示整数部分,后跟小数点字符和六位小数”。
问题的其余部分是很多 SO ansers 的骗局 - 请参阅 here ,例如。
关于c++ - 在 C++ 中将 Double 转换为 String 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35765957/