在本文中,我們學習如何使用不同的方法在 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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。