Solved

# Rounding integer value

Posted on 1998-11-04
250 Views
How can can I round integer values f.ex.
768 to 800 and 732 to 700 or 56 to 60 ...
0
Question by:tittapo
• 3
• 2
• 2

LVL 1

Expert Comment

ID: 1226917
Try this method:
private int round( double num )
{
if ( num >= 10 ) {
return round( (double)num / 10 ) * 10;
}
return (int)Math.round(num);
}
Hope this helps.
0

Author Comment

ID: 1226918
hey omok.
your code gave me number 689 when I called it with 689 not 700.

private int round( double num )
{
if ( num >= 10 ) {
return round( (double)num / 10 ) * 10;
}
return (int)Math.round(num);
}
0

LVL 8

Accepted Solution

diakov earned 20 total points
ID: 1226919
public static int round (int i)
{
int mod = i % 100;
return (mod >= 50)?(i + (100 - mod)):( i - mod);
}

Cheers,
Nik
0

Author Comment

ID: 1226920
Comment.
Actually that code was usuful for my purpose.

if ((maxnumber>=100) && (maxnumber<1000))
{
maxnumber = (int)(maxnumber/100)*100;
}
if ((maxnumber>=10) && (maxnumber<100))
{
maxnumber = (int)(maxnumber/10)  * 10;
}

0

LVL 1

Expert Comment

ID: 1226921
tittapo,
Are you sure my method doesn't work?
I have written a test program and tested it before I posted it here???
I am using JDK1.1.7 on NT4
0

LVL 1

Expert Comment

ID: 1226922
tittapo,
I don't think your code will work as (maxnumber/10) will always round down because you are doing Integer division.
Try 49, it will give you 40 instead of 50.
0

LVL 8

Expert Comment

ID: 1226923
public static int round (int i)
{
if (i >= 100)
{
int mod = i % 100;
return (mod >= 50)?(i + (100 - mod)):( i - mod);
}
else
{
int mod = i % 10;
return (mod >= 5)?(i + (10 - mod)):( i - mod);
}
}

2-nd attempt.

Cheers.
0

## Featured Post

Question has a verified solution.

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