在C ++中使用atof将字符串转换为十进制不起作用

时间:2018-02-11 17:19:36

标签: c++ string atoi atof

我试图将通过引用传递的字符串变量转换为小数。当我使用atoi在引号中放入一个字符串时,它可以工作,但不能使用字符串变量。我该怎么做呢?

void stringDecision(string& assembledString) {

double convertedString; // conversion to double

// remove unary + operator because it's unnecessary
if (assembledString[0] == '+' && assembledString.length() > 1)
{
    assembledString.erase(0, 1);

    cout << assembledString;

    convertedString = atoi(assembledString);


}

else
{
    cout << "I'm an operator " << assembledString;
}
}

1 个答案:

答案 0 :(得分:5)

您需要std::stod 1

convertedString = std::stod(assembledString);

请注意,您可以也使用std::atof,并将其传递给assembledString.c_str()。但std::atoi在这里没什么意义。

1除了atoi用于转换为整数,而不是双倍