c++ - 在 C++ 中将 Double 转换为 String 的问题

标签 c++ string

所以我知道 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/

相关文章:

java - Java中计数器的一系列字符串操作

Java正则表达式在任何字符串中查找字符

javascript - 仅当字符串不为 null 或空时才使用定界符连接字符串

c - 试图在 C 字符串中将字符设置为 '\0' 的函数出现总线错误

c++ - 实现或定义在未命名/匿名命名空间内声明的类或函数

java - java包是用C++写的吗?

c# - 将 C 定义宏转换为 C#

.net - 如何验证路径(字符串)是否包含 C# .NET 中可变时间格式的日期?

c++ - 常量 CFoo &bar() 常量

c++ - 在 Mac OS 上使用 OpenMP 和 C++11