Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# decimal rounding

Posted on 1998-12-12
Medium Priority
292 Views
What's the easiest way to round (or truncate) a double value?

example:

I have   3.21453235
I want   3.21

Thanks
0
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points

LVL 1

Accepted Solution

MatthewL earned 100 total points
ID: 1180028

You can shift the number the required number of decimal places, truncate it, and shift it back again.  The function round listed below does that.  It has a limitation on the size of the numbers used ( since I've cast into a long int ).

Matt

#include <iostream.h>
#include <math.h>

double round( double number, int decPlace );

void main( void )
{
double value = 3.21453235;

value = round( value, 2 );

cout << value << endl;

}

double round( double number, int decPlace )
{
long int temp;

number *=  pow( 10, decPlace );
temp = (long int)( number + .5 );
number = ( double ) temp;

number /= pow( 10, decPlace );

return( number );
}
0

LVL 84

Expert Comment

ID: 1180029
Now try it with
value = round( -3.21453235, 2);
0

LVL 22

Expert Comment

ID: 1180030
To avoid the limitations of 32 bit integers and (I believe) to have the correct (well, most accepted) rounding for negatives, use

number *=  pow( 10, decPlace );
number = floor( number + .5 );
number /= pow( 10, decPlace );
0

Expert Comment

ID: 1180031
iff this is for printing the value you can just use the width and precision stuff for printf.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In days of old, returning something by value from a function in C++ was necessarily avoided because it would, invariably, involve one or even two copies of the object being created and potentially costly calls to a copy-constructor and destructor. A…
Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticall…
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
###### Suggested Courses
Course of the Month4 days, 23 hours left to enroll