I am writing a program for my beginning c++ class. It is supposed to create an invoice in the console window. so far, everything is working perfectly, except for one thing.

My invoice comes out looking like this:

696.60 - 27 Adult Meals at $25.80 each.

+ 46.44 - 3 Child Meals at $15.48 each.

--------

743.04 - Total Cost of All Meals (Add the above numbers together)

+ 52.01 - Weekend Surcharge (743.04 x .07)

+143.11 - Tax/Tip ((743.04 + 52.01) x .18)

--------

938.16 - Total Party Cost

- 57.50 - Deposit Received

--------

880.66 - Balance Due

- 32.84 - 3.5% Prompt Payment Discount (938.16 x .035)

--------

847.83 - Balance Due (If Paid Within Ten Days)

The problem is that if I add these numbers on a calculator, I get as result of $847.82, not $847.83. I checked them individually and they are all being rounded properly. If I add them up using the entire decimal value of the calculations, rather than the truncated value, I get $847.83.

So, the question is as follows:

In C++, how do I do each calculation, round the answer to 2 decimal places, then use only the rounded number in the next calculation?