如何将字符串转换为有符号的浮点数?

时间:2014-03-14 16:22:02

标签: c++

喜欢:

string num = "-0.25";

如何将其转换为带符号的浮点数?

6 个答案:

答案 0 :(得分:2)

C ++ 11:std::stof(num)转换为float;对stod doublestold long double也是std::strtod

历史上:std::atof(如果您不需要检查错误,则为{{1}});或字符串流。

答案 1 :(得分:1)

对于C来说,

strtod()是一个不错的选择。

我不知道C ++是否有其他赌注。

答案 2 :(得分:1)

std::stof功能应该可以正常工作。

答案 3 :(得分:1)

您可以使用istringstream

std::string num = "-0.25";

std::istringstream iss ( num);

float f_val = 0;

iss >> f_val;

答案 4 :(得分:0)

您可以使用atof功能。 http://www.cplusplus.com/reference/cstdlib/atof/

对于C ++,您也可以使用std::stof http://www.cplusplus.com/reference/string/stof/

答案 5 :(得分:0)

您可以使用函数atof将字符串转换为带符号的float。喜欢:

float myValue = (float)atof("0.75");

请注意,您还应检查传递的值是否为有效数值,否则行为可能无法预测。

还有other solution

    string mystr ("1204");
    int myint;
    stringstream(mystr) >> myint;