Hằng số Đối với các số nguyên lớn hơn, hãy xem xét sử dụng Number.MAX_SAFE_INTEGER
biểu thị số nguyên an toàn tối đa trong JavaScript [253 - 1].Number.MAX_SAFE_INTEGER
constant represents the maximum safe integer in JavaScript [253 – 1].BigInt
.
Thử nó
Sự mô tả
Hằng số MAX_SAFE_INTEGER
có giá trị 9007199254740991
[9,007,199,254,740,991, hoặc ~ 9 triệu triệu].
Định dạng điểm nổi chính xác gấp đôi chỉ có 52 bit để biểu diễn mantissa, do đó nó chỉ có thể biểu diễn một cách an toàn các số nguyên giữa -[253 -1] và 253 -1. "An toàn" trong bối cảnh này đề cập đến khả năng biểu diễn số nguyên chính xác và so sánh chúng một cách chính xác. Ví dụ, Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2
sẽ đánh giá đúng, điều này không chính xác về mặt toán học. Xem
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
0 để biết thêm thông tin.Bởi vì MAX_SAFE_INTEGER
là một thuộc tính tĩnh của
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
2, bạn luôn sử dụng nó dưới dạng Number.MAX_SAFE_INTEGER
, thay vì là một thuộc tính của một giá trị số.Ví dụ
Trả về giá trị của max_safe_integer
Number.MAX_SAFE_INTEGER; // 9007199254740991
Mối quan hệ giữa MAX_SAFE_Integer và Epsilon
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
4 là 2-52, trong khi MAX_SAFE_INTEGER
là 253-1-cả hai đều có nguồn gốc từ chiều rộng của mantissa, là 53 bit [với bit cao nhất luôn là 1]. Nhân chúng sẽ cho một giá trị rất gần - nhưng không bằng - với 2.Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
Thông số kỹ thuật
Thông số kỹ thuật ngôn ngữ Ecmascript # sec-number.max_safe_integer # sec-number.max_safe_integer |
Tính tương thích của trình duyệt web
Bảng BCD chỉ tải trong trình duyệt
Xem thêm
The
6 property represents the maximum numeric value representable in JavaScript.Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
6 property represents the maximum numeric value representable in JavaScript.Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
Try it
Description
The
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
7 property has a value of approximately Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
8, or 21024 - 1. Values larger than Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
7 are represented as if [num1 * num2