Skip to content
Related Articles
Open in App
Not now

Related Articles

Using underscore in Numeric Literals in Java

Improve Article
Save Article
Like Article
  • Difficulty Level : Hard
  • Last Updated : 13 Jul, 2022
Improve Article
Save Article
Like Article

When Java was introduced, use of underscore in numeric literals was not allowed but from java version 1.7 onwards we can use ‘_’ underscore symbols between digits of numeric literals. You can place underscores only between digits. Do remember there are certain places where we can not place underscores as listed below as follows:

  • At the beginning or end of a number
  • Adjacent to a decimal point in a floating-point literal
  • Prior to an F or L suffix
  • In positions where a string of digits is expected
  • We can use underscore symbols only between the digits if we are using else we will get a compile-time error.

Let us discuss illustrations in order to justify the above said as follows:

Illustration 1: Valid usage of underscore in numeric literals  

Input  : int i = 12_34_56; 
Output : 123456

Input  : double db = 1_2_3.4_5_6
Output : 123.456

Illustration 2: Invalid usage in numeric literals 

int i = _12345; // Invalid as this is an identifier, not a numeric literal
double db = 123._456; // Invalid as we cannot put underscores adjacent to a decimal point
double db 123_.456_; // Invalid as we cannot put underscores at the end of a number 

Now geek you must be wondering out why it was introduced so basically the main advantage of this approach is the readability of the code will be improved. At the time of compilation, these underscore symbols will be removed automatically. We can use more than one underscore symbol also between the digits too. For example, the following is a valid numeric literal as shown below:

int x4 = 5_______2;        // OK (decimal literal)

Implementation: Make sure before writing code we do have java version 1.7 and onwards as discussed in header itself. In order to check, open terminal and write below command and if not so install latest java version and we are good to go if already updated. 

java -version  



// Java program to illustrate
// using underscore in Numeric Literals
// Main class
// UnderScoreSymbols
class GFG {
    // Main driver method
    public static void main(String[] args)
        // Declaring and initializing numeric literals
        int i = 12_34_5_6;
        double db = 1_23.45_6;
        // Literal with underscore
        int x4 = 5_______2;
        // Simply printing and displaying above literals
        System.out.println("i = " + i);
        System.out.println("db = " + db);
        System.out.println("x4 = " + x4);


i = 123456
db = 123.456
x4 = 52

This article is contributed by Shivakant Jaiswal. If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

My Personal Notes arrow_drop_up
Like Article
Save Article
Related Articles

Start Your Coding Journey Now!