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,这里有什么不对吗?
答案 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
答案 3 :(得分:0)
它是C ++中的std::to_string
,你在寻找什么。
double abc = 23.233;
std::string mystring = std::to_string(abc);