在本教程中,我們將借助示例學(xué)習(xí)如何將字符串轉(zhuǎn)換為浮點(diǎn)數(shù),反之亦然。
將字符串轉(zhuǎn)換為浮點(diǎn)數(shù)的最簡單方法是使用以下C ++ 11函數(shù):
std :: stof() - 將string轉(zhuǎn)換為float
std :: stod() - 將string轉(zhuǎn)換為double
std :: stold() - 將string轉(zhuǎn)換為long double。
這些函數(shù)在string頭文件中定義。
#include <iostream>
#include <string>
int main() {
std::string str = "123.4567";
// 將字符串轉(zhuǎn)換為浮點(diǎn)數(shù)
float num_float = std::stof(str);
// 將字符串轉(zhuǎn)換為雙浮點(diǎn)數(shù) double
double num_double = std::stod(str);
std:: cout<< "num_float = " << num_float << std::endl;
std:: cout<< "num_double = " << num_double << std::endl;
return 0;
}輸出結(jié)果
num_float = 123.457 num_double = 123.457
我們可以使用std::atof()函數(shù)將char數(shù)組轉(zhuǎn)換為double。
#include <iostream>
// atoi()需要cstdlib
#include <cstdlib>
int main() {
// 聲明和初始化字符數(shù)組
char str[] = "123.4567";
double num_double = std::atof(str);
std::cout << "num_double = " << num_double << std::endl;
return 0;
}輸出結(jié)果
num_double = 123.457
我們可以使用C ++ 11 std :: to_string()函數(shù)將float和double轉(zhuǎn)換為字符串。 對于較舊的C ++編譯器,我們可以使用std :: stringstream對象。
#include <iostream>
#include <string>
int main() {
float num_float = 123.4567F;
double num_double = 123.4567;
std::string str1 = std::to_string(num_float);
std::string str2 = std::to_string(num_double);
std::cout << "Float 轉(zhuǎn)換為 String = " << str1 << std::endl;
std::cout << "Double 轉(zhuǎn)換為 String = " << str2 << std::endl;
return 0;
}輸出結(jié)果
Float 轉(zhuǎn)換為 String = 123.456703 Double 轉(zhuǎn)換為 String = 123.456700
#include <iostream>
#include<string>
#include<sstream> // 使用stringstream
int main() {
float num_float = 123.4567F;
double num_double = 123.4567;
// 創(chuàng)建stringstream對象
std::stringstream ss1;
std::stringstream ss2;
// 將num_float的值分配給ss1
ss1 << num_float;
// 將num_float的值分配給ss2
ss2 << num_double;
//用ss1和ss2的值初始化兩個(gè)字符串變量
//然后使用str()函數(shù)將其轉(zhuǎn)換為字符串格式
std::string str1 = ss1.str();
std::string str2 = ss2.str();
std::cout << "Float 轉(zhuǎn)換為 String = " << str1 << std::endl;
std::cout << "Double 轉(zhuǎn)換為 String = " << str2 << std::endl;
return 0;
}輸出結(jié)果
Float 轉(zhuǎn)換為 String = 123.457 Double 轉(zhuǎn)換為 String = 123.457
相關(guān)轉(zhuǎn)換:將 C ++字符串轉(zhuǎn)換為int。