public class Test{ int i=9; int j=2; Test(){ System.out.println(i/j);//Why 9/2 is printing 4 instead of 4.5 } public static void main(String arg[]){ Test t = new Test(); } }
Why 9/2 is printing 4 instead of 4.5 Pls Explain....
Because the result of the division of two "int"s is an "int" (and not a "float" or "double"). This is explained in the Java Language Specification. If you would like to get the result of "4.5" then try this:
Good Luck, Avi.
WY Hsiao
Greenhorn
Joined: Oct 31, 2003
Posts: 4
posted
0
Hi , byte-->short-->int-->float-->double this sequence is "promotion". ("widening") byte<--short<--int<--float<--double this sequence is "casting". ("narrowing") If the result isn't the same as your expection, or having an error ("possible loss of precision") after compiling, you can check this first. Hope this helps.
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.