Hi, I forgot how to do the decimal precision aka magic formula
Like after you run the program it give you 4 decimal places but i only want 2 decimal places

Hope someone can help!!

Thank You!!

#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;

void cal_avg(ifstream& input, ofstream& output);

int main()
	ifstream input;
	string inf;
	ofstream output;
	string outf;

	cout << "Please enter the input file name that you want to open: " << endl;
	cin >> inf;
	cout << "Please enter the output file name that you want to open: " << endl;
	cin >> outf;


	if(input.fail() && output.fail())
		cout << "The input file " << inf << "and the output file" << outf << "could not be opened!" << endl;

	cal_avg(input, output);


	return 0;

void cal_avg(ifstream& input, ofstream& output)
	double val, sum=0, avg=0;
	int i=0;

	while(input >> val)
		sum += val;
		avg = sum / i;
		cout << "The average is: " << avg << endl;
		output << "The average is: " << avg << endl;

Two options:

1) You can output 2 decimal places
2) You can change the actual precision of variable to 2 decimal places

For option number 1, here is an example : float f = 1.23456f; cout.precision(3); cout << f; and for option number 2, here is an example :

float a = 1.2345;
float b = int(a*100) / 100.0f; 
cout << b;

So for option 1: Do I another variable to define avg in line 48?

//would it be something like this?
double new_avg;
avg = sum / i;
float new_avg = avg; cout.percision(2); cout << "The average is: " << new_avg << endl;
//When i use float, Do i need to declare it before using it?

Here's a decent iomanip tutorial:


If you scroll about halfway down, you'll see an example. For some reason they have the entire webpage as a link so I can't copy and paste the code. Look for "Setting the precision of numerical output with setprecision".

There are some examples on this page:


You can also use printf instead.


It's a matter of personal preference, though I imagine that since you're using C++, stick with iomanip.

This article has been dead for over six months. Start a new discussion instead.