# How to round up floating number properly?

Printable View

• 01-19-2012, 06:27 AM
IndraG
How to round up floating number properly?
I just found out that converting a floating number to integer, will round down in Java, for example:
When I try:
float fl = 45.7;
int i = (int) fl;
Or
Float fl = New Float(45.7);
int i = fl.intValue()
The results are = 47! How can I round it up to the nearest integer? For example 45.7 -> 46, 45.3 -> 45.

I am sorry if I sound dumb here, I am not, but I am used to other language (which can do this easily), and the book I use do not explain this one in enough detail. Thank you...
• 01-19-2012, 06:48 AM
sunde887
Re: How to round up floating number properly?
Look at the round methods provided by the Math class, Math (Java Platform SE 6)
• 01-19-2012, 06:53 AM
diamonddragon
Re: How to round up floating number properly?
float fl = 45.7f;
int i = Math.round(fl);

but if You have double, need typecast to int:
double fl = 45.7;
int i = (int)Math.round(fl);

Because, Math.round(fl) return (long)Math.floor(fl + 0.5) and floor(fl + 0.5) return double floor(double fl).
• 01-19-2012, 06:54 AM
pbrockway2
Re: How to round up floating number properly?
And maybe look at the formatting offered by NumberFormat and the printf() family (in String, PrintStream etc).

I mention this because often people speak of "rounding" a number when they are really concerned with getting some human friendly representation of it. The latter task (which is formatting) need not involve rounding a value (and hence making it less accurate).
• 01-19-2012, 08:57 AM
IndraG
Re: How to round up floating number properly?
OK, Guys. Thank you so much. Got it. Much appreciated...