如何将float与string连接?

时间:2013-03-13 12:28:59

标签: c++ concatenation

我试过了:

ostringstream myString;
float x;
string s;
if(x)
  myString<<x;
else
  myString<<s;
return myString.str();

但它不起作用。 我的目标是连接到myString,一个float和一个字符串,在它们之间有一个空格,然后再测试其中一个是否为NULL。

5 个答案:

答案 0 :(得分:3)

为什么else介于两者之间?试试这个:

ostringstream myString;
float x;
string s;
if (fabsf(x) > 1e-30){
    myString<<x << " ";
}
if(s.length() > 0)
   myString<<s;
return myString.str(); //does ostringstream has a str()-member?

答案 1 :(得分:0)

这应该这样做

ostringstream myString;
float x;
string s;
if ( x != 0)
  myString << x;
myString << " " << s;
return myString.str();

答案 2 :(得分:0)

ostringstream myString;
float x;
string s;
myString<<x << " " <<s;
return myString.str();

答案 3 :(得分:0)

或使用boost :: lexical_cast:

return boost::lexical_cast<string>(x) + " " + s;

答案 4 :(得分:0)

C ++ 11已经发布。 Visual Studio对它有很好的支持,现在有std :: to_string(float)。 转换为字符串后,只需与+运算符连接;

string a = "test";
float b = 3.14f;
string result = a + std::to_string(b);

http://en.cppreference.com/w/cpp/string/basic_string/to_string

此外,您可能会很高兴现在存在sto_全局函数系列,用于将字符串转换回数字类型: http://en.cppreference.com/w/cpp/string/basic_string/stol