当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ Float转String用法及代码示例


在本文中,我们学习如何使用不同的方法在 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


相关用法


注:本文由纯净天空筛选整理自raj2002大神的英文原创作品 Convert Float to String In C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。