Skip to content

Files

Latest commit

 

History

History
29 lines (20 loc) · 806 Bytes

avoid_js_rounded_ints.md

File metadata and controls

29 lines (20 loc) · 806 Bytes

Pattern: Use of JavaScript rounded int

Issue: -

Description

AVOID integer literals that cannot be represented exactly when compiled to JavaScript.

When a program is compiled to JavaScript int and double become JavaScript Numbers. Too large integers (value < Number.MIN_SAFE_INTEGER or value > Number.MAX_SAFE_INTEGER) may be rounded to the closest Number value.

For instance 1000000000000000001 cannot be represented exactly as a JavaScript Number, so 1000000000000000000 will be used instead.

Example of incorrect code:

int value = 9007199254740995;

Example of correct code:

BigInt value = BigInt.parse('9007199254740995');

Further Reading