C ++中ToString(“00”)的等价物是什么?

时间:2014-10-16 08:18:47

标签: c++

C ++中.ToString("00")的等价物是什么?

我收到错误声明

left of '.ToString' must have class/struct/union
1>        type is 'double'

更新:感谢您的回复,我现在有另一个类似的问题 //为了得到//.ToString(“0000000”),我做了以下

  memset(buf, 0, sizeof(buf));
  sprintf_s(buf, "%02.7f",latm); //.7 to match heremisphere
  std::string latm_str = buf;

我意识到%02没有任何影响,例如当我得到7.0时,结果是7.0000000而不是所需的07.0000000,这里有什么不对吗?

4 个答案:

答案 0 :(得分:3)

我认为你应该使用std::to_string

答案 1 :(得分:1)

我猜这是基于this link的C#。如果是这样,取决于您是否可以访问C ++ 11,您可以使用以下内容:

int a = 3;
std::string s = std::to_string(a);

如果您还没有使用C ++ 11,那么您可以使用以下内容:

int a = 3;
std::ostringstream ss;
ss.fill('0');
ss << std::setw(2) << a;
std::string s = ss.str();

更多细节见this question

答案 2 :(得分:1)

double number = 3.14;
char buf[100];
sprintf_s(buf, "%02d", (int)number);
string s = buf;
cout << s; // prints 03

基于Custom string formatting: ToString("00")

答案 3 :(得分:0)

它是C ++中的std::to_string,你在寻找什么。

double abc = 23.233;
std::string mystring = std::to_string(abc);