Java 7 Underscores in Numeric Literals

In this tutorial we are going to see underscores in numerical literals.

Note: In this tutorial some of code taken from Oracle official web site

In Java 7 any number of underscore character (_) can appear in anywhere between numerical literals.The underscore is only present in the representation of literals in Java code, it will not appear if you print the literal value.

Example

int i = 1000_1000;

Output

10001000

Examples to use underscore between numerical liters.

long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;

Rules to use underscores between literals

  1. Place the underscore only between numerical literals
  2. you cannot place the underscore in the following places
  3. At beginning or end of number.
  4. Adjective to decimal point in a floating point literal.
  5. Prior to L or F suffix
  6. In position where String of digits is expected

Example of valid and invalid underscore placement given below

float pi1 = 3_.1415F; // Invalid; cannot put underscores adjacent to a decimal point

float pi2 = 3._1415F; // Invalid; cannot put underscores adjacent to a decimal point

long socialSecurityNumber1 = 999_99_9999_L; // Invalid; cannot put underscores prior to an L suffix

int x1 = _52; // This is an identifier, not a numeric literal

int x2 = 5_2; // OK (decimal literal)

int x3 = 52_; // Invalid; cannot put underscores at the end of a literal

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

int x5 = 0_x52; // Invalid; cannot put underscores in the 0x radix prefix

int x6 = 0x_52; // Invalid; cannot put underscores at the beginning of a number

int x7 = 0x5_2; // OK (hexadecimal literal)

int x8 = 0x52_; // Invalid; cannot put underscores at the end of a number

int x9 = 0_52; // OK (octal literal)

int x10 = 05_2; // OK (octal literal)

int x11 = 052_; // Invalid; cannot put underscores at the end of a number

Note: In this tutorial some of code taken from Oracle official web site


Ask your questions in eHowToNow Forum

Post your technical, non-technical doubts, questions in our site. Get answer as soon as possible, meanwhile you can help others by answering, unanswered questions.
To Ask new Question : Ask Question
Check our existing discussions : Questions & Answers

  1. Java 7 Switch statement on String
  2. Java 7 Try statement with resources
  3. Java 7 Re-throw of an Exception
  4. Java 7 Binary Literals
  5. Java 7 Try statement with multi catch
  6. Java 7 new features
  7. Java 7 Underscores in Numeric Literals

Be the first to comment

Leave a Reply