Solved

decimal rounding

Posted on 1998-12-12
4
287 Views
Last Modified: 2012-05-04
What's the easiest way to round (or truncate) a double value?

example:

I have   3.21453235
I want   3.21

Thanks
0
Comment
Question by:talaskam
4 Comments
 
LVL 1

Accepted Solution

by:
MatthewL earned 50 total points
ID: 1180028
Hi talaskam;

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

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

Expert Comment

by:nietod
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

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

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Introduction This article is a continuation of the C/C++ Visual Studio Express debugger series. Part 1 provided a quick start guide in using the debugger. Part 2 focused on additional topics in breakpoints. As your assignments become a little more …
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 goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question