如何在c ++中将字符串值转换为双精度格式

时间:2010-11-14 15:02:02

标签: c++

如何在C ++中将字符串值转换为双重格式?

3 个答案:

答案 0 :(得分:10)

如果您正在使用增强库,lexical cast是一种非常流畅的方式。

答案 1 :(得分:4)

使用stringstream

#include <sstream>

stringstream ss;
ss << "12.34";
double d = 0.0;
ss >> d;

答案 2 :(得分:2)

你可以使用stringstream。 您还可以捕获无效输入,例如给出非数字并要求它转换为int。

#include <iostream> 
#include <sstream>
using namespace std;

int main()
{
    stringstream s;
    string input;
    cout<<"Enter number: "<<endl;
    cin>>input;
    s.str(input);
    int i;
    if(s>>i)
        cout<<i<<endl;
    else
        cout<<"Invalid input: Couldn't convert to Int"<<endl;
}

如果转换失败,s>>i将返回零,因此会输出无效输入。