Win a copy of Penetration Testing Basics this week in the Security forum!

# Marcus Q1

rubna
Greenhorn
Posts: 25
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;
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
Posts: 103
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
Posts: 44
In case of 1, f = 1/3 is converted to 1.0f/3.0f
Thanks
Raj

Michal Harezlak
Ranch Hand
Posts: 185
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
Posts: 11
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
Posts: 93
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