Skip to content

noPrecisionLoss

诊断类别:lint/correctness/noPrecisionLoss

¥Diagnostic Category: lint/correctness/noPrecisionLoss

自从:v1.0.0

¥Since: v1.0.0

来源:

¥Sources:

禁止丢失精度的文字数字

¥Disallow literal numbers that lose precision

¥Examples

¥Invalid

const x = 9007199254740993
code-block.js:1:11 lint/correctness/noPrecisionLoss ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This number literal will lose precision at runtime.

> 1 │ const x = 9007199254740993
^^^^^^^^^^^^^^^^
2 │

The value at runtime will be 9007199254740992

const x = 5.123000000000000000000000000001
code-block.js:1:11 lint/correctness/noPrecisionLoss ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This number literal will lose precision at runtime.

> 1 │ const x = 5.123000000000000000000000000001
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 │

The value at runtime will be 5.123

const x = 0x20000000000001
code-block.js:1:11 lint/correctness/noPrecisionLoss ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This number literal will lose precision at runtime.

> 1 │ const x = 0x20000000000001
^^^^^^^^^^^^^^^^
2 │

The value at runtime will be 9007199254740992

const x = 0x2_000000000_0001;
code-block.js:1:11 lint/correctness/noPrecisionLoss ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This number literal will lose precision at runtime.

> 1 │ const x = 0x2_000000000_0001;
^^^^^^^^^^^^^^^^^^
2 │

The value at runtime will be 9007199254740992

¥Valid

const x = 12345
const x = 123.456
const x = 123e34
const x = 12300000000000000000000000
const x = 0x1FFFFFFFFFFFFF
const x = 9007199254740991
const x = 9007_1992547409_91

¥Related links