format, iomanip, c++

c++, iomanip

Solution

You want `std::fixed` (the other one just inserts its value into the stream, which is why you see 8192), and I don't see a call to `std::setprecision` in your code anywhere. This'll fix it:

#include <iostream>
#include <iomanip>

using std::cout;
using std::setprecision;
using std::fixed;

int main()
{
    cout << fixed << setprecision(2)
         << "saver1\n" 
         << "monthlyInterestRate: " << 5.5 << '\n' 
         << "savingsBalance: " << 10928.8383 << '\n';
    cout << "saver2\n" 
         << "monthlyInterestRate: " << 4.7 << '\n' 
         << "savingsBalance: " << 22.44232 << '\n';
}

Problem

I'm trying to learn to use namespaces declarations more definitive than not just say "using namespace std". I'm trying to format my data to 2 decimal places, and set the format to be fixed and not scientific. This is my main file: ``` #include <iostream> #include <iomanip> #include "SavingsAccount.h" using std::cout; using std::setprecision; using std::ios_base; int main() { SavingsAccount *saver1 = new SavingsAccount(2000.00); SavingsAccount *saver2 = new SavingsAccount(3000.00); SavingsAccount::modifyInterestRate(.03); saver1->calculateMonthlyInterest(); saver2->calculateMonthlyInterest(); cout << ios_base::fixed << "saver1\n" << "monthlyInterestRate: " << saver1->getMonthlyInterest() << '\n' << "savingsBalance: " << saver1->getSavingsBalance() << '\n'; cout << "saver2\n" << "monthlyInterestRate: " << saver2->getMonthlyInterest() << '\n' << "savingsBalance: " << saver2->getSavingsBalance() << '\n'; } ``` On Visual Studio 2008, when I run my program, I get an output of "8192" before the data I want. Is there a reason for that? Also, I don't think I am setting the fixed part or 2 decimal places correctly since I seem to get scientific notation once I added the setprecision(2). Thanks.

Original source

Related problems