update integers range in Data types chapter
This commit is contained in:
parent
fe1c4a241f
commit
79b7f7c8f0
1 changed files with 2 additions and 2 deletions
|
@ -68,9 +68,9 @@ We'll see more about working with numbers in the chapter <info:number>.
|
|||
|
||||
## BigInt [#bigint-type]
|
||||
|
||||
In JavaScript, the "number" type cannot represent integer values larger than <code>(2<sup>53</sup>-1)</code> (that's `9007199254740991`), or less than <code>-(2<sup>53</sup>-1)</code> for negatives. It's a technical limitation caused by their internal representation.
|
||||
In JavaScript, the "number" type cannot safely represent integer values larger than <code>(2<sup>53</sup>-1)</code> (that’s `9007199254740991`), or less than <code>-(2<sup>53</sup>-1)</code> for negatives. Technically "number" type can store larger integers (up to <code>1.7976931348623157 * 10<sup>308</sup></code>), but outside of the safe integer range <code>±(2<sup>53</sup>-1)</code> a lot of integer values can't be represented using this data type: some of them are "missed" due to the limitation caused by their internal binary representation. For example, all the odd integers greater than <code>(2<sup>53</sup>-1)</code> are "missed" in the "number" type.
|
||||
|
||||
For most purposes that's quite enough, but sometimes we need really big numbers, e.g. for cryptography or microsecond-precision timestamps.
|
||||
For most purposes <code>±(2<sup>53</sup>-1)</code> range is quite enough, but sometimes we need the entire range of really big integers without missing any of them, e.g. for cryptography or microsecond-precision timestamps.
|
||||
|
||||
`BigInt` type was recently added to the language to represent integers of arbitrary length.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue