developer tip

JavaScript는 64 비트 정수를 지원합니까?

optionbox 2020. 10. 22. 07:56
반응형

JavaScript는 64 비트 정수를 지원합니까?


다음 코드가 있습니다.

var str = "0x4000000000000000";   //4611686018427387904 decimal
var val = parseInt(str);
alert(val);

이 값 4611686018427388000" "입니다.0x4000000000000060

JavaScript가 64 비트 정수를 잘못 처리하는지 궁금하거나 뭔가 잘못하고 있습니까?


JavaScript는 IEEE-754 배정 밀도 (64 비트) 형식을 사용하여 숫자를 나타냅니다 . 내가 이해했듯이 이것은 53 비트 정밀도 또는 15-16 십진수를 제공합니다. 귀하의 번호는 JavaScript가 처리 할 수있는 것보다 더 많은 숫자를 가지고 있으므로 근사치로 끝납니다.

이것은 실제로 "잘못 처리"되는 것은 아니지만 큰 숫자에 대해 완전한 정밀도가 필요한 경우에는 분명히 도움이되지 않습니다. 큰 숫자를 처리 할 수있는 몇 가지 JS 라이브러리가 있습니다 (예 : BigNumberInt64) .


Chromium 버전 57 이상은 기본적으로 임의 정밀도 정수를 지원합니다. 이것은에서 BigInt라고하고 작업중인 뿐만 아니라 다른 브라우저. 그것은이다 극적으로 빠른 자바 스크립트 구현보다.

참고 URL : https://stackoverflow.com/questions/9643626/does-javascript-support-64-bit-integers

반응형