在本文中,我们学习如何使用不同的方法在 C++ 中将浮点数转换为字符串:
- 使用to_string()
- 使用字符串流
- 使用宏
- 使用 boost 库中的lexical_cast
1. 使用to_string()
to_string() 方法采用单个整型变量或其他数据类型并将其转换为字符串。
句法: -
string to_string (float value);
例子:
C++
#include <bits/stdc++.h>
using namespace std;
int main() {
float x=5.5;
string resultant;
resultant=to_string(x);
cout << "Converted value from float to String using to_string() is : "<<resultant<<endl;
return 0;
}
输出
Converted value from float to String using to_string() is : 5.500000
说明:to_string函数将给定的浮点值转换为字符串。
2.使用字符串流
stringstream 将字符串对象与流关联起来,允许您像流一样读取字符串(如 cin)。要使用 stringstream,我们需要包含 sstream 头文件。 stringstream 类在解析输入时非常有用。基本方法有:
- clear() -来清除流。
- str() -获取和设置其内容存在于流中的字符串对象。
- 运算符 <<-将字符串添加到 stringstream 对象。
- 运算符>>-从 stringstream 对象中读取一些内容。
例子:
C++
#include <bits/stdc++.h>
using namespace std;
int main() {
float x=5.5;
stringstream s;
s<<x; // appending the float value to the streamclass
string result=s.str(); //converting the float value to string
cout <<"Converted value from float to String using stringstream is : "<<result<<endl;
return 0;
}
输出
Converted value from float to String using stringstream is : 5.5
说明: stringstream 类将浮点值从变量转换为字符串。它是 C++ 库中的内置类。
3. 使用宏
该方法仅适用于浮点转换。 STRING 宏使用“#”将浮点值转换为字符串。
句法:
#define STRING(Value) #Value string gfg(STRING(Float_value));
例子:
C++
#include <bits/stdc++.h>
#include <string>
using namespace std;
//using macro to convert float to string
#define STRING(Value) #Value
int main() {
string gfg(STRING(5.5));
if(gfg.empty()) cout << "The String is empty"<<endl ;
else cout << gfg << endl;
return EXIT_SUCCESS;
}
输出
5.5
4. 使用lexical_cast
库 “boost/lexical_cast.hpp” 中定义的 Boost.LexicalCast 提供了一个转换运算符 boost::lexical_cast,它可以将数字从字符串转换为数字类型,如 int 或 double,反之亦然。 boost::lexical_cast 是 std::stoi()、std::stod() 和 std::to_string() 等函数的替代函数,这些函数已添加到 C++11 的标准库中。
用法:
float x= 5.5; string res = lexical_cast<string>(x);
例子:
C++
#include "boost/lexical_cast.hpp"
#include <bits/stdc++.h>
using namespace std;
using boost::lexical_cast;
using boost::bad_lexical_cast;
int main() {
// Float to string conversion
float x= 5.5;
string res = lexical_cast<string>(x);
cout << res << endl;
return 0;
}
输出:
5.5
相关用法
- C++ Function Pointer用法及代码示例
- C++ Forward_list forward_list()用法及代码示例
- C++ Forward_list assign()用法及代码示例
- C++ Forward_list before_begin()用法及代码示例
- C++ Forward_list begin()用法及代码示例
- C++ Forward_list cbefore_begin()用法及代码示例
- C++ Forward_list cbegin()用法及代码示例
- C++ Forward_list cend()用法及代码示例
- C++ Forward_list clear()用法及代码示例
- C++ Forward_list emplace_after()用法及代码示例
- C++ Forward_list emplace_front()用法及代码示例
- C++ Forward_list empty()用法及代码示例
- C++ Forward_list end()用法及代码示例
- C++ Forward_list erase_after()用法及代码示例
- C++ Forward_list front()用法及代码示例
- C++ Forward_list get_allocator()用法及代码示例
- C++ Forward_list insert_after()用法及代码示例
- C++ Forward_list max_size()用法及代码示例
- C++ Forward_list merge()用法及代码示例
- C++ Forward_list pop_front()用法及代码示例
- C++ Forward_list push_front()用法及代码示例
- C++ Forward_list remove()用法及代码示例
- C++ Forward_list remove_if()用法及代码示例
- C++ Forward_list resize()用法及代码示例
- C++ Forward_list resize_value()用法及代码示例
注:本文由纯净天空筛选整理自raj2002大神的英文原创作品 Convert Float to String In C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。