Output Question

Started by
0 comments, last by olivaw 11 years, 2 months ago

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?

Advertisement

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.

This topic is closed to new replies.

Advertisement