在C 中使用Atof将字符串转换为小数不起作用

in C++ using atof to convert string to decimal not working

本文关键字:转换 字符串 小数 不起作用 Atof      更新时间:2023-10-16

我正在尝试通过引用将字符串变量转换为十进制。当我使用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;
}
}

您需要std::stod 1

convertedString = std::stod(assembledString);

请注意,您也可以使用std::atof,将其传递assembledString.c_str()。但是std::atoi在这里毫无意义。


1除了atoi用于转换为整数的事实,而不是double