2015-09-21 3 views
-1

У меня есть целочисленный carCost, который мне нужно отображать в денежном формате, т.е. 3700.00 , однако мы не должны изменять код, где он печатается.изменение целого числа в формат денег без изменения функции cout

TODO: Make the quote lines below print to look like money 



// Example 3.45234 should be --> 3.45 
// Think about iomanip 
// --------------------------------------- 
// Put some code in here 
// --------------------------------------- 
static_cast<double>(carCost); 
static_cast<double>(upgradeCost); 



// --------------------------------------- 
// ============================================================ 
// Don't mess with these lines ================================ 
// ============================================================ 
std::cout << "[" << quoteNumber++ << "] "; // Don't touch me 
std::cout << " Car($" << carCost << ")"; // Don't touch me 
std::cout << " E(" << engineLevel << ")"; // Don't touch me 
std::cout << " T(" << tireLevel << ")"; // Don't touch me 
std::cout << " R(" << rimLevel << ")"; // Don't touch me 
std::cout << " P(" << paintLevel << ")"; // Don't touch me 
std::cout << " M(" << mufflerLevel << ")"; // Don't touch me 
// Don't touch the following line -- HOWEVER, you should put 
// something in the space ABOVE to make this line print like money 
std::cout << " Upgrades($" << upgradeCost << ")" << std::endl; // Don't touch me 
// ============================================================ 

Я попытался изменить их с помощью static_cast, но которые все еще оленья кожа решить, как изменить формат, не касаясь COUT линий.

+0

Почему вы не можете изменить настройки потока? – owacoder

+0

Я не знаю, но код, в частности, не касается меня, и «не касайтесь следующей строки». Однако вы должны положить что-то в пространство выше, чтобы сделать эту строку печатаемой, как деньги, поэтому каким-то образом значение carCost изменяется с 3700 до 3700.00, а затем в строке std :: cout << "Автомобиль ($" << carCost << ")" // Не трогайте меня, он распечатывает 3700.00 – jdoe

+0

FYI, значение '3700' ** ** значение '3700.00', просто отформатировано по-разному.« Изменение значения »не повлияет на выходной формат. – owacoder

ответ

0

Добавить #include <iomanip> своим #include с, и вы можете использовать

std::cout << std::fixed << std::setprecision(2);

перед линией.

+0

, который сделал это спасибо. Я думал, что« fixed »и« setprecision »должны были применяться к отдельным переменным с помощью cout. Я не знал, что вы могли бы использовать, как заявление на одеяло. – jdoe

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