This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Java Interview Guide and have Anthony DePalma on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes Java double data type problem Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Java double data type problem" Watch "Java double data type problem" New topic

Java double data type problem

Rameshwar Soni
Ranch Hand

Joined: Feb 03, 2011
Posts: 247
Can anyone please explain me the output of the following program??? Thanks in advance
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 15094

The notation for octal number literals, starting with 0, is only for integers.

020 is an integer literal, so it is interpreted as an integer with the decimal value 16, which you then assign to a double, so that the int gets converted to a double.

020.0 is not an octal floating-point literal. It's a decimal floating-point literal; that's why you see the value 20.0 (decimal) printed. A leading 0 when writing a floating-point literal does not mean that the notation is octal.

Look at section 3.10.1 and 3.10.2 of the Java Language Specification for the exact details.

Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 8 API documentation
I agree. Here's the link:
subject: Java double data type problem
It's not a secret anymore!