posted 15 years ago

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?

For example I have the number 2.339 but I'd like to display it as 2.3, how do I do this?

posted 15 years ago

Big NRG

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!!

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!!

Dave

Adam Kania

Greenhorn

Posts: 2

posted 15 years ago

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!

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!

posted 15 years ago

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.

HTH

Layne

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.

HTH

Layne

Ron Newman

Ranch Hand

Posts: 1056

posted 15 years ago

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 ]

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

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

posted 15 years ago

The J2SE API Documentation that fully describes what Ron and others have mentioned can be found at http://java.sun.com/j2se/1.4.1/docs/api/ . Learning to reference the API documentation is a most valuable thing for a Java programmer to learn to do.

With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime. |