Help coderanch get a
new server
by contributing to the fundraiser
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Devaka Cooray
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • paul wheaton
  • Henry Wong
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Tim Moores
  • Carey Brown
  • Mikalai Zaikin
Bartenders:
  • Lou Hamers
  • Piet Souris
  • Frits Walraven

Math.Round

 
Greenhorn
Posts: 28
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,
I have a doubt in the following question.

What is the output of following
{
float f4 = -5.5f;
float f5 = 5.5f;
float f6 = -5.49f;
float f7 = 5.49f;
System.out.println("Round f4 is " + Math.round(f4));
System.out.println("Round f5 is " + Math.round(f5));
System.out.println("Round f6 is " + Math.round(f6));
System.out.println("Round f7 is " + Math.round(f7));
}
a)Round f4 is -6
Round f5 is 6
Round f6 is -5
Round f7 is 5

b)Round f4 is -5
Round f5 is 6
Round f6 is -5
Round f7 is 5

Correct answer is b)

I understood the answer for f5,f6 and f7 but isn't f4 = -4 ? Please explain. Thank you
 
Ranch Hand
Posts: 411
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


Original Post Gayatri Ganesh
I understood the answer for f5,f6 and f7 but isn't f4 = -4 ? Please explain



Math.round(-5.5f) is internally calculated as (int)Math.floor(-5.5 + 0.5 ) which is (int)Math.floor(-5.0) = -5

Hence the answer is -5



I would say, if you know how to calculate Math.floor function correctly then Math.round() should be very easy. Math.round(x) is equivalent to
(int)Math.floor(x + 0.5) if x is float.
(long)Math.floor(x + 0.5) if x is double.



Hope this helps you...
[ January 18, 2005: Message edited by: Jay Pawar ]
 
Sheriff
Posts: 11343
Mac Safari Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Java's API documentation is an excellent resource...

http://java.sun.com/j2se/1.5.0/docs/api/index.html

Find the Math class, then check the documentation for the round methods.
 
reply
    Bookmark Topic Watch Topic
  • New Topic