答案:C++中数字转字符串常用方法包括std::to_string、stringstream和fmt库,其中std::to_string最简单,适合基本类型;stringstream支持格式控制,适用于复杂场景;fmt库性能好且语法清晰,适合现代C++项目。反向转换可用std::stoi、std::stod或std::from_chars。推荐优先使用std::to_string,需格式化时选用后两者,并注意浮点数精度处理。

在C++中,将数字转换为字符串有多种方法,常用的方式简洁高效,适合不同场景。以下是几种主流且实用的转换方式。
使用 std::to_string 函数
std::to_string 是最简单直接的方法,支持整型、浮点型等基本数值类型转字符串。
- 适用于 int、long、float、double 等类型
- 头文件
中定义,无需额外包含 - 用法简单,可直接调用
示例代码:
Perl学习手札是台湾perl高手写的一篇文章,特打包为chm版,方便大家阅读。 关于本书 1. 关于Perl 1.1 Perl的历史 1.2 Perl的概念 1.3 特色 1.4 使用Perl的环境 1.5 开始使用 Perl 1.6 你的第一个Perl程序 2. 标量变量(Scalar) 2.1 关于标量 2.1.1 数值 2.1.2 字符串 2.1.3 数字与字符串转换 2.2 使用你自己的变量 2.3 赋值 2.3.1 直接设定 2.3.2 还可以这样 2.4 运算 2.5 变量的输出/输入 2.
int num = 123; std::string str = std::to_string(num); double pi = 3.14159; std::string pi_str = std::to_string(pi); // 结果可能包含多余小数位
使用 stringstream 流操作
通过 std::stringstream 可以灵活控制格式,适合需要格式化输出的场景。
立即学习“C++免费学习笔记(深入)”;
- 需包含头文件
- 支持自定义精度、进制等格式
- 适合复杂转换逻辑
示例代码:
#include#include int num = 456; std::stringstream ss; ss << num; std::string str = ss.str();
使用 fmt 或第三方库(如 fmtlib)
现代C++项目中,fmt 库因其高性能和易用性被广泛采用,C++20也开始引入格式化库。
- 语法清晰,性能优于 stringstream
- 支持类似 Python 的 format 写法
- 可处理复杂格式需求
示例(使用 fmt):
#includestd::string str = fmt::format("{}", 789);
字符串转回数字的方法
除了数字转字符串,反过来也可以:
- std::stoi:转 int
- std::stod:转 double
- std::from_chars(C++17起):高效无异常解析
示例:
std::string str = "123";
int num = std::stoi(str);
double val = std::stod("3.14");
基本上就这些常用方法。日常开发推荐优先使用 std::to_string,对格式要求高时选 stringstream 或 fmt。不复杂但容易忽略的是浮点数转换后的小数位控制,必要时需手动设置精度。










