# XO0154: bad digit, misplaced `_`, missing digits, or out of range integer

Integer literals are decimal, `0x` hex, `0b` binary, or `0o` octal, with `_` allowed only between digits (`1_000_000`). The lexer rejects a digit that does not belong to the base (`0b102`), a prefix with no digits (`0x`), a doubled, leading, or trailing `_`, an integer that does not fit in 64 bits, and a duration literal whose nanosecond count overflows. See core 1.6.

## Example

```xo
const LIMIT = 1__000
```

## Fix

```xo
const LIMIT = 1_000
```

Run `xo explain XO0154` for this text in a terminal, or see
[section 10.6 of the specification](../../spec/core/#106-diagnostic-codes).

