to_string()支持所有整数类型(int、long等)和浮点类型(float、double等),不支持自定义类型或格式控制,需包含头文件,相比sprintf和stringstream更安全简洁。

在C++中,to_string() 是最直接、安全且标准的数字转字符串方法,无需手动管理内存或格式化细节,适用于整型、浮点型等基本数值类型。
to_string() 支持哪些数字类型
该函数是重载函数,内置支持以下常见数值类型:
- 所有整数类型:int、long、long long、unsigned int 等
- 浮点类型:float、double、long double
注意:它不支持自定义类型或指针;也不接受格式控制(如保留几位小数),纯按默认精度转换。例如:
double x = 3.1415926;string s = to_string(x); // 结果是 "3.141593"(默认6位有效数字)
使用前要包含的头文件
只需包含 ,不需要额外引入其他库:
立即学习“C++免费学习笔记(深入)”;
using std::to_string;
和 sprintf / stringstream 对比有什么优势
相比传统方式,to_string() 更简洁、不易出错:
- 不用预估缓冲区大小(sprintf 容易溢出)
- 不用构造、清空、获取结果(stringstream 写法较冗长)
- 无异常抛出风险(只要输入合法,一定成功)
示例对比:
// to_string(推荐)string s1 = to_string(42) + to_string(3.14);
// stringstream(稍繁琐)
std::stringstream ss; ss
处理精度不足时的替代方案
如果需要控制小数位数(比如保留两位),to_string() 本身做不到,应改用 std::format(C++20)或 std::ostringstream:
#include
std::ostringstream oss;
oss string s = oss.str(); // "3.14"











