wood burning stoves 2.0*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes doubt in Math.round function. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "doubt in Math.round function." Watch "doubt in Math.round function." New topic
Author

doubt in Math.round function.

sri rallapalli
Ranch Hand

Joined: Mar 15, 2005
Posts: 88
Hi All,
I have tested the round function with the following values.
1)float f = 4.4999999f;
System.out.println(Math.round(f)); prints-- 5
2)float f = 4.499999f;
System.out.println(Math.round(f)); prints-- 4

i just want to know the how the round function is working. Why the difference in the result with some minar change.
thanks in advance.
Santana Iyer
Ranch Hand

Joined: Jun 13, 2005
Posts: 335
Good question I dont know answer but
float f=4.499999f; // 5 9's
System.out.print(f); // 4.499999

float d=4.4999999f; // 6 9's
System.out.print(d); // 4.5
Santana Iyer
Ranch Hand

Joined: Jun 13, 2005
Posts: 335
Good question I dont know answer but
float f=4.499999f; // 5 9's
System.out.print(f); // 4.499999

float d=4.4999999f; // 6 9's
System.out.print(d); // 4.5

Only thing I know about round is to add +0.5 and take floor.
raghu babu
Ranch Hand

Joined: Jul 05, 2005
Posts: 60
on the same lines try this :

System.out.println(4.4999999f + 0.5); //displays 5.0
System.out.println(4.4999f + 0.5); //displays 4.9998986...

applying floor functions to the above values results in 5.0 and 4.0 respectively.
Philip Heller
author
Ranch Hand

Joined: Oct 24, 2000
Posts: 119
4.999999f is internally represented by the same bit pattern that represents 5.0f. Check out this code:


The output is:

4.5 is represented as 1083179008
4.4999999f is represented as 1083179008
4.499999f is represented as 1083179006

The last representation has a 6 in the ls digit.

-- Phil


Consultant to SCJP team.<br />Co-designer of SCJD exam.<br />Co-author of "Complete Java 2 Certification Study Guide".<br />Author of "Ground-Up Java".
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: doubt in Math.round function.
 
Similar Threads
Math class
Math.round (from Poddar exam)
Math.round()
a question from Poddar's exam
Math.Round