This week's book giveaway is in the OO, Patterns, UML and Refactoring forum.We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line!See this thread for details.
Big Moose Saloon
 Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies Register / Login Win a copy of Refactoring for Software Design Smells: Managing Technical Debt this week in the OO, Patterns, UML and Refactoring forum!

# See this question

Ja vardhan
Ranch Hand

Joined: May 09, 2005
Posts: 169
This is the one from K&B 1.4 book:

Which three are valid declarations of a float? (Choose three.)
A. float f1 = -343;
B. float f2 = 3.14;
C. float f3 = 0x12345;
D. float f4 = 42e7;
E. float f5 = 2001.0D;
F. float f6 = 2.81F;

Can you pleas explain why the options A,D are correct and B,C are not correct ?

Thanks.

Javardhan:
Tamara Lopez
Ranch Hand

Joined: Feb 21, 2006
Posts: 63
Hello Ja,

A. float f1 = -343;
B. float f2 = 3.14;
C. float f3 = 0x12345;
D. float f4 = 42e7;
E. float f5 = 2001.0D;
F. float f6 = 2.81F;

B is not correct because floating-point numbers are considered doubles. If you want a float you must mark it as such. 3.14F
C is not correct because you can only have ints in hex or octal format.
A is correct because an int fits into a float. (it's not a floating point number so you don't need the F is this case)
D.....erm - you can just represent floats with the e scientific notation. again you dont need the f because its not a floating point number.
Win Siu
Greenhorn

Joined: Mar 30, 2006
Posts: 7
A. float f1 = -343;
B. float f2 = 3.14;
C. float f3 = 0x12345;
D. float f4 = 42e7;
E. float f5 = 2001.0D;
F. float f6 = 2.81F;

How

Win Siu<br />SCJP 5.0
Win Siu
Greenhorn

Joined: Mar 30, 2006
Posts: 7
A. float f1 = -343;
B. float f2 = 3.14;
C. float f3 = 0x12345;
D. float f4 = 42e7;
E. float f5 = 2001.0D;
F. float f6 = 2.81F;

How come when I tried it with Eclipse, it marked
A, C and F to be correct instead?

I think D is not correct. A and C are integers so they are OK. F is suffixed with 'F' to indicate it is a float so it is OK. Otherwise are considered double?
Ja vardhan
Ranch Hand

Joined: May 09, 2005
Posts: 169
Yes, it seems D is wrong because 42e7 is double number (hope its going beyond the float range). So assgining double to float is wrong.

Why the yhave given D is right ???

Thanks.

I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com

subject: See this question