Привет, ребята, я пытаюсь преобразовать вход пользователя в строку в строку и объединить с другой строкой, однако double не включает в себя .00 сзади. Например, если я вхожу в 72.98, он правильно распечатывает 72.98, но когда я вхожу в 72.00, он распечатывает только 72 без .00. Как я могу убедиться, что .00 есть.C++ coverting user input double в строку с десятичной цифрой
string desc, date;
double amount;
.
.
.
cout << "Enter expenses amount: ";
cin >> amount;
//print to see the amount
cout << amount << endl;
.
.
.
string amt;
amt = static_cast<ostringstream*>(&(ostringstream() << amount))->str();
string input = desc + ":" + amt + ":" + date;
Я попытался ниже код, но не работает, как хорошо, это дает некоторые смешные число
stringstream amtstr;
amtstr << setprecision(2) << fixed << amount;
cout << amtstr << endl;;
Определите «смешные номера». Кажется [работать на меня] (http://rextester.com/ERU96086) –
@IgorTandetnik Если вы скопировали точный код, вы бы увидели [проблему] (http://ideone.com/uYvBVk);) – leemes
Это должно работать 'std :: cout << std :: fixed << std :: setprecision (2) << amount << endl;' –