📅  最后修改于: 2023-12-03 15:00:02.976000             🧑  作者: Mango
在 C++ 中,将 float 类型转换为字符串可能会经常用到。本文将介绍几种方法来实现 float 到 string 的转换。
使用 std::stringstream 来将 float 类型转换为字符串。我们可以使用 << 运算符将 float 类型插入到 stringstream 中,然后使用其中的 str() 方法将其转换为 string 类型。
#include <iostream>
#include <sstream>
int main() {
float f = 3.14f;
std::stringstream ss;
ss << f;
std::string str = ss.str();
std::cout << str << std::endl; // 输出 3.14
}
可以使用 sprintf 函数将 float 类型转换为字符串。sprintf 函数的第一个参数指定存储结果的字符串地址,第二个参数指定格式,比如 "%.2f" 将会输出小数点后两位数。
#include <cstdio>
int main() {
float f = 3.14f;
char buffer[100];
sprintf(buffer, "%.2f", f);
std::string str = buffer;
std::cout << str << std::endl; // 输出 3.14
}
从 C++11 开始,可以使用 std::to_string 函数将 float 类型转换为 string 类型。这种方法非常简单直接,但是其精度可能会受到浮点数舍入的影响。
#include <iostream>
int main() {
float f = 3.14f;
std::string str = std::to_string(f);
std::cout << str << std::endl; // 输出 3.1400001049041748
}
可以使用 std::setprecision 函数来控制输出精度。
#include <iostream>
#include <iomanip>
int main() {
float f = 3.14f;
std::string str = std::to_string(f);
str.erase(str.find_last_not_of('0') + 1);
std::cout << std::setprecision(2) << std::fixed << str << std::endl; // 输出 3.14
}
本文介绍了三种将 float 转换为 string 的方法:使用 std::stringstream,使用 sprintf 函数和使用 std::to_string 函数。务必根据具体需求选择合适的方法。