• Status: Solved
• Priority: Medium
• Security: Public
• Views: 268

# Rounding integer value

How can can I round integer values f.ex.
768 to 800 and 732 to 700 or 56 to 60 ...
0
tittapo
• 3
• 2
• 2
1 Solution

Commented:
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 Commented:
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

Commented:
public static int round (int i)
{
int mod = i % 100;
return (mod >= 50)?(i + (100 - mod)):( i - mod);
}

Cheers,
Nik
0

Author Commented:
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

Commented:
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

Commented:
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

Commented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.