Phương thức Number.isSafeInteger()
xác định xem giá trị truyền vào có phải một số nằm trong khoảng của số nguyên an toàn hay không.
Tài nguyên dùng cho bài viết này được lưu trữ trong một kho của GitHub. Nếu bạn muốn đóng góp cho nó, hãy clone lại https://github.com/mdn/interactive-examples và gửi cho chúng tôi một pull request.
Số nguyên an toàn là số nguyên mà
- có thể được biểu diễn chính xác theo chuẩn số nguyên độ chính xác kép IEEE-754, và
- cách biểu diễn theo chuẩn IEEE-754 đó không thể bằng kết quả của một phép làm tròn số nguyên khác theo chuẩn biểu diễn IEEE-754.
Chẳng hạn, 253 - 1
là một số nguyên an toàn: nó có thể hiển thị chính xác, và không có số nguyên nào có thể làm tròn đến nó với bất cứ chế độ làm tròn theo chuẩn IEEE-754. Ngoài ra, 253
không phải là một số nguyên an toàn: nó có thể được biểu diễn chính xác theo chuẩn IEEE-754, nhưng số nguyên 253 + 1
không thể hiển thị chính xác theo chuẩn IEEE-754 mà thay vào đó được làm tròn về 253
theo kiểu làm tròn về số gần nhất và làm tròn về không. Số nguyên an toàn nằm trong đoạn từ -(253 - 1)
đến 253 - 1
(± 9007199254740991
hoặc ±9,007,199,254,740,991).
Xử lý giá trị lớn hơn hoặc nhỏ hơn ~9 triệu tỉ với độ chính xác toàn vẹn yêu cầu sử dụng thư viện số học độ chính xác bất kì. Xem What Every Programmer Needs to Know about Floating Point Arithmetic để biết thêm thông tin về cách biểu diễn số thực dấu phẩy động.
Cú pháp
Number.isSafeInteger(testValue)
Tham số
testValue
- Giá trị để kiểm tra có phải số nguyên an toàn hay không.
Giá trị trả về
Boolean
cho biết liệu giá trị truyền vào có phải là số nguyên an toàn hay không.
Ví dụ
Number.isSafeInteger(3); // true
Number.isSafeInteger(Math.pow(2, 53)); // false
Number.isSafeInteger(Math.pow(2, 53) - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger('3'); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true
Polyfill
Number.isSafeInteger = Number.isSafeInteger || function (value) {
return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
};
Đặc tả
Đặc tả | Trạng thái | Ghi chú |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Number.isSafeInteger' in that specification. |
Standard | Định nghĩa lần đầu. |
ECMAScript (ECMA-262) The definition of 'Number.isSafeInteger' in that specification. |
Living Standard |
Trình duyệt hỗ trợ
BCD tables only load in the browser
Bảng trình duyệt hỗ trợ trong trang này được sinh từ cấu trúc dữ liệu. Nếu bạn muốn đóng góp cho khối dữ liệu, hãy xem qua https://github.com/mdn/browser-compat-data và gửi cho chúng tôi pull request.
Xem thêm
- Đối tượng
Number
. Number.MIN_SAFE_INTEGER
Number.MAX_SAFE_INTEGER