Hi, Here is a question from Marcus Which of the following are legal statements? 1) float f=1/3; 2) int i=1/3; 3) float f=1.01; 4) double d=999d; The correct answer is 1,2,4. I compiled & got it correct too.But i have a small doubt.When u say float f=1/3,why does'nt it consider 1/3 which 0.3333 as double.We know that the default type for decimal type is double.Why does'nt it give an error for No.2 option too?I have the same doubt here.Can anyone please make it clear for me? Thanks
Savithri Devaraj
Ranch Hand
Joined: Jun 26, 2000
Posts: 103
posted
0
rubna, I think it is considering 1/3 as integer division in both 1. and 2. The result integer 0 is assigned to float in case 1 and to int in case 2. Savithri
Raj Devaraj
Ranch Hand
Joined: Jun 29, 2000
Posts: 44
posted
0
In case of 1, f = 1/3 is converted to 1.0f/3.0f Thanks Raj
Michal Harezlak
Ranch Hand
Joined: Jul 06, 2000
Posts: 185
posted
0
Originally posted by Raj Devaraj: In case of 1, f = 1/3 is converted to 1.0f/3.0f Thanks Raj
i am afraid it is not true. try this: <code> float ff = 1/3; System.out.println(ff); float f=1.0f/3.0f; System.out.println(f); </code>
bante
Greenhorn
Joined: Jun 19, 2000
Posts: 11
posted
0
I believe Savithri is right. In float f = 1/3; The right hand side is first caculated. The result integer 0 is thenprompted as 0f and assigned to the left hand side.
Nirmala
Ranch Hand
Joined: Jun 28, 2000
Posts: 93
posted
0
Hi, I think Savuthiri is right . I executed this in JBuilder 2 and works out. Michael: I too hope that Devaraj's statement is not true. Thanks. Nirmal
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.