# Output Question

## Recommended Posts

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?

##### 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.

## Create an account

Register a new account

• ### Forum Statistics

• Total Topics
628305
• Total Posts
2981962

• 9
• 12
• 11
• 12
• 11