2014-10-16 4 views
-3

Что такое эквивалент .ToString("00") в C++?Что такое эквивалент ToString ("00") в C++?

Я получаю ошибку о том, что

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

Обновление: Спасибо за ответы, я имею еще один подобный вопрос сейчас // Симметричные получить //.ToString("00.00000") я сделал следующее

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, ничего здесь не так?

+5

«Что такое английский для«Je суис ип рок звезда "?» это довольно бесполезный вопрос, если вы не знаете, что оригинальная фраза находится на французском языке :-) Какой исходный язык является вашим оригиналом? – paxdiablo

+0

sprintf (string_buffer, "% 02d", value) – 9dan

+3

Какой язык является 'ToString (" 00 ");' in? Также '' 00 "' уже выглядит как строка. – Galik

ответ

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")

+0

спасибо за ваш ответ, просто интересно, что, если его .ToString («00.00000»)? Мне просто нужно сделать sprintf_s (buf, «% 2.5f», number); – user1157977

3

Я думаю, вы должны использовать std::to_string

0

это std::to_string в C++, что вы ищете.

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

Я предполагаю, что это C# на основе this link. Если это так в зависимости от того, есть ли у вас доступ к 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

Смежные вопросы