number-literal-case

March 27, 2026 ยท View on GitHub

๐Ÿ“ Enforce proper case for numeric literals.

๐Ÿ’ผ This rule is enabled in the following configs: โœ… recommended, โ˜‘๏ธ unopinionated.

๐Ÿ”ง This rule is automatically fixable by the --fix CLI option.

Differentiating the casing of the identifier and value clearly separates them and makes your code more readable.

  • Lowercase radix identifier 0x 0o 0b for Number and BigInt.
  • Uppercase or lowercase hexadecimal value for Number and BigInt.
  • Lowercase e for exponential notation.

Examples

Hexadecimal

// โŒ
const foo = 0XFF;

// โŒ
const foo = 0xff;

// โŒ
const foo = 0Xff;

// โœ…
const foo = 0xFF;
// โŒ
const foo = 0Xffn;

// โœ…
const foo = 0xFFn;

Binary

// โŒ
const foo = 0B10;

// โœ…
const foo = 0b10;
// โŒ
const foo = 0B10n;

// โœ…
const foo = 0b10n;

Octal

// โŒ
const foo = 0O76;

// โœ…
const foo = 0o76;
// โŒ
const foo = 0O76n;

// โœ…
const foo = 0o76n;

Exponential notation

// โŒ
const foo = 2E-5;

// โœ…
const foo = 2e-5;
// โŒ
const foo = 2E+5;

// โœ…
const foo = 2e+5;
// โŒ
const foo = 2E5;

// โœ…
const foo = 2e5;

Options

Type: object

hexadecimalValue

Type: 'uppercase' | 'lowercase'
Default: 'uppercase'

Specify whether the hexadecimal number value (ABCDEF) should be in uppercase or lowercase.

Note: 0x is always lowercase and not controlled by this option to maintain readable code.

Example:

{
	'unicorn/number-literal-case': [
		'error',
		{
			hexadecimalValue: 'lowercase',
		}
	]
}
// โŒ
const foo = 0XFF;
const foo = 0xFF;
const foo = 0XFFn;
const foo = 0xFFn;

// โœ…
const foo = 0xff;
const foo = 0xffn;