• 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
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

just basic division

 
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
it's simple! i can't do division!

if i try: float x = 5/2;
the result is: 2.0

how will i get: 2.5
 
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Welcome to JavaRanch.

Both 5 and 2 are integers, therefore the '/' operator assumes you want integer division. Try 5.0/2.0 .
 
darius vaas
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
thank's! (yes i'm complete newby)

actualy that didn't work as i derived two numbers from dates and i had to divide them. but with your answer in mind i recognized i have to change the type. so i did: double z = (double) x / (double) y

again, thank's for the (swift) answer
 
Marshal
Posts: 79179
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You could try "x = 0.0f + 5 / 2;" See whether that works
 
darius vaas
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
no, that's not working. only double does the trick. but there is another problem: 79.39767282683093 is a bit toooo long for me, how can it be truncated to let's say 79.397?
 
Ranch Hand
Posts: 82
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You cannot really round a number. If you want to display it a screen (paper, etc), you have to use NumberFormat class. Run this code to see what it does:Explore API for other functionality/subclasses of this class.
 
Campbell Ritchie
Marshal
Posts: 79179
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Try "x = 1.0 * 2 / 5;" then.
Try "System.out.printf("My number is %.3f", z);"

Look up the java.util.Formatter class, and find the methods Formatter.format, String.format, PrintStream.format and PrintStream.printf, which all take the same sort of arguments.
 
darius vaas
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
problem solved!
thank's everyone for help and i'm quite sure i will need your help again soon. 'till then be well!
[ May 07, 2007: Message edited by: darius vaas ]
 
Greenhorn
Posts: 18
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Use DecimalFormat. this will limit the number of decimal places your answer it and if you haven't already change float to double. Here is some example code where I did almost what it sounds like what you where trying to do. This code divides two numbers and uses decimal format to control the decimals.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic