• ### Announcements

• #### Wondering what's new and changed at GameDev.net?06/20/17

Check out the latest Staff Blog update that talks about what's changed, what's new, and what's up with these "Pixels".
Followers 0

# Output Question

## 1 post in this topic

so am doing this exercise from my text book. and my code is as followed

public class Census{
public static void main(String[] args){

double population;
double birth = 86400/7;
double death = 86400/13;
double immigrant = 86400/45;
double total;

total = birth + immigrant - death;
total = total * 365;
population = total + 312032486;
System.out.println(population);
}
}


My output to the console is 3.14812326E8

When i do this problem step by step on my calculation i get the following output 312040102.7.

Why are the numbers so different?

0

##### Share on other sites

Ryan,

In Java, the way you write constants define their types. When you write "86400/7", the compiler understands that the two numbers are integer and the result should be integer also, so instead of getting "12342.85714285714" into "birth" you are getting only "12342".

Try to write your constants differently: instead of 86400, use 86400.0 or 86400d.

Take a look here, in the topic "Floating-point literals".

Hope this helps.

1