File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes java rule round up #113 Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "java rule round up #113" Watch "java rule round up #113" New topic

java rule round up #113

Jeroen van der Velden

Joined: Apr 07, 2003
Posts: 10
Can somebody explain to me why the following code compiles and runs:
double x; x=24.0/0;
The answer says it will compile and run because floating point nummers don't produce a divide-by-zero ArithmeticException. They will give a result which is Not a Number value. But for me it looks like 24.0 is a double and not a floating point number because it has no f attached to it.

Jeroen.<br />SCJP 1.4
Valentin Crettaz
Gold Digger

Joined: Aug 26, 2001
Posts: 7610
A double primitive is also a floating point number. By default, a floating point value is a double. If you append a 'f' after the number, it becomes a float value.

[Blog] [Blogroll] [My Reviews] My Linked In
Reshma Shanbhag
Ranch Hand

Joined: Sep 17, 2002
Posts: 204
Hi Jeroen,
Welcome to Javaranch .
Both float(32 bits long) and double(64 bits long) are floating point values (that is both are decimal values) with different ranges. Default floating point value is 'double'.
For example
float f = 12.0, this will give a compile time as error as '12.0' denotes a double make this statement compile we need to modify it as float f = 12.0F.
So the above answer mentioned is right.

SCJP 1.4, SCWCD 1.4
I agree. Here's the link:
subject: java rule round up #113
It's not a secret anymore!