JavaScript의 정수 정밀도를 90077199254740991까지 유지

4036 단어 JavaScript
자바스크립트의 정수 정밀도를 유지하는 것은 2의 64차원이 아니라 2의 53차원인 것 같다.
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991
console.log(Math.pow(2, 53) - 1); // 9007199254740991
console.log(Math.pow(2, 53) + 0); // 9007199254740992
console.log(Math.pow(2, 53) + 1); // 9007199254740992 誤差
console.log(Math.pow(2, 53) + 2); // 9007199254740994
console.log(Math.pow(2, 53) + 3); // 9007199254740996 誤差
console.log(Math.pow(2, 53) + 4); // 9007199254740996
console.log(Math.pow(2, 53) + 5); // 9007199254740996 誤差
또한 9007199254740991Number.MAX_SAFE_INTEGER에 의해 정의되었다.
이는 JavaScript에 정수형이 없고 모두 부동점으로 표시되기 때문입니다.JavaScript의 부동 소수점 유형은 IEE754와 일치하는 것으로 간주됩니다.
64비트 배율 정밀도

IEEE 754 - Wikipedia

좋은 웹페이지 즐겨찾기