Sometimes, it is needed to round off a number to some decimal digits. Again **stringstream **comes to help us with the aid of **iomanip** function **setprecision**. Following is a sample function to round off a number to a fixed digits.

double Round(const double value, const int digits) { stringstream stream; // Store the number with required no. of decimal // places to stream stream << setprecision(digits) << value; // Convert stream to number double roundedValue = 0.0; stream >> roundedValue; return roundedValue; }

The header files **sstream **and **iomanip **are needed for the above.

Please note that the variable value holds the *number with original no. of decimal places* and *digits is the total number of digits needed (including the non-decimal digits) after rounding has taken place*.

**Round(10.37665, 3)** gives **10.4** and **Round(10.3745, 4)** gives **10.37**.

## Note

If you want to store the number in scientific notation in stream, you can do

*stream << scientific;*

For fixed point format, do

*stream << fixed;*