C++double转成string保留精度
时间: 2023-09-29 13:10:09 浏览: 132
你可以使用 C++ 的 stringstream(字符串流)来实现 double 转 string 并保留精度的功能。下面是一个示例代码:
```c++
#include <iostream>
#include <sstream>
#include <iomanip>
int main() {
double d = 3.1415926;
std::stringstream stream;
stream << std::fixed << std::setprecision(2) << d;
std::string str = stream.str();
std::cout << str << std::endl; // 输出 3.14
return 0;
}
```
在这个示例中,我们首先定义了一个 double 类型的变量 d,其值为 3.1415926。然后,我们创建了一个 stringstream 对象 stream,并使用 std::fixed 和 std::setprecision(2) 函数对其进行设置,以保留两位小数。接着,我们将 d 写入 stream 中,最后使用 stream.str() 函数将 stream 转换为 string 类型的变量 str,并输出 str 的值。输出结果为 3.14。
相关问题
C++ double 转 string保留精度
如果你想保留一定的精度将double转为string,可以使用C++11中的std::to_string()函数的另一个版本,它可以接受一个格式化参数,用于指定保留的小数位数,示例代码如下:
```c++
#include <iostream>
#include <iomanip>
#include <string>
int main()
{
double num = 3.1415926;
std::string str = std::to_string(num);
std::cout << std::fixed << std::setprecision(3) << num << std::endl;
std::cout << str << std::endl;
return 0;
}
```
在这个示例中,std::fixed和std::setprecision(3)设置了输出num时保留3位小数。输出结果如下:
```
3.142
3.141593
```
可以看到,num被正确地保留了3位小数,而且to_string()函数返回的字符串也正确地反映了这个精度。
C++ double 转换为 string
可以使用 `std::to_string()` 函数将 `double` 类型转换为 `std::string` 类型,例如:
```cpp
double d = 3.14159;
std::string s = std::to_string(d);
```
这样,变量 `s` 就存储了 `3.14159` 的字符串表示。需要注意的是,这种方式只能保留默认精度,如果需要更高的精度,可以使用其他库比如 Boost.Multiprecision 或 GMP。
阅读全文
相关推荐

















