This week's book giveaway is in the OO, Patterns, UML and Refactoring forum.
We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes Float Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Float" Watch "Float" New topic


Adam Kania

Joined: Sep 24, 2002
Posts: 2
Hey people, I am new to Java (and this forum) so being a newbie I'd like to ask a real newbie question; how do I round up a numeber in Float?
For example I have the number 2.339 but I'd like to display it as 2.3, how do I do this?
Dave Vick
Ranch Hand

Joined: May 10, 2001
Posts: 3244
Welcome to the Java Ranch, we hope you�ll enjoy visiting as a regular however,
your name is not in keeping with our naming policy here at the ranch. Please change your display name to an appropriate name as shown in the policy.
Thanks again and we hope to see you around the ranch!!

Adam Kania

Joined: Sep 24, 2002
Posts: 2
Sorry, Didn't notice the policy (and I'm just so damned used to the nick) I hope this is better!
Now could someone pls answer my question, better yet I'll ask another one;
If I have the total amount of seconds hwo can I display the amount of hours, minutes and seconds that makes up? Thanks!
Layne Lund
Ranch Hand

Joined: Dec 06, 2001
Posts: 3061
There might be a round() method in the Float class, but you can also easily create your own:
public float round(float f, int decimals)
int i = (int)(f * Math.pow(10, decimals) + 0.5);
return (float)i / Math.pow(10, decimals);
I'm coding this from memory, so I hope it's correct. First I multiply the number by a power of 10 to move the digit I want to round to the one's place. Then I add 0.5 before I truncate the number to an int. This ensures that the number is "rounded up" if the tenth's place is more than 0.5. If the tenth's place is less than 0.5, the number is rounded down. Then I convert the int back to a float by dividing by the appropriate power of 10.

Java API Documentation
The Java Tutorial
Anthony Villanueva
Ranch Hand

Joined: Mar 22, 2002
Posts: 1055
Hint: you can use the / division and % modulo operators.
If I have, say, 5 % 2 it returns the remainder, which is 1. if it is perfectly divisible then it returns 0.
Ron Newman
Ranch Hand

Joined: Jun 06, 2002
Posts: 1056
The Math class has ceil(), floor(), and round() functions. Make sure you use the right one. You talk of "rounding up", but you want 2.339 to display as 2.3. That's either rounding down or rounding to nearest, but it isn't rounding up.

Ron Newman - SCJP 1.2 (100%, 7 August 2002)
Ron Newman
Ranch Hand

Joined: Jun 06, 2002
Posts: 1056
Also, take a look at the java.text.DecimalFormat class. You may want to play around with this simple program, to learn how formats work. It takes two command line arguments. The first is a number, the second is a format string:

[ September 24, 2002: Message edited by: Ron Newman ]
Dirk Schreckmann

Joined: Dec 10, 2001
Posts: 7023
The J2SE API Documentation that fully describes what Ron and others have mentioned can be found at . Learning to reference the API documentation is a most valuable thing for a Java programmer to learn to do.

[How To Ask Good Questions] [JavaRanch FAQ Wiki] [JavaRanch Radio]
I agree. Here's the link:
subject: Float
It's not a secret anymore!