다음 코드가 있습니다.
var str = "0x4000000000000000"; //4611686018427387904 decimal
var val = parseInt(str);
alert(val);
이 값 4611686018427388000
은 " "입니다.0x4000000000000060
JavaScript가 64 비트 정수를 잘못 처리하는지 궁금합니다.
다음 코드가 있습니다.
var str = "0x4000000000000000"; //4611686018427387904 decimal
var val = parseInt(str);
alert(val);
이 값 4611686018427388000
은 " "입니다.0x4000000000000060
JavaScript가 64 비트 정수를 잘못 처리하는지 궁금합니다.
답변:
UInt64
. Mozilla는 UInt64에 대한 지원을 추가했지만 이는 비표준입니다. WebGL은 비슷한 요구 사항이 있지만 불행히도 Uint32ArrayUint64Array
만 있습니다 .
javascript.options.bigint
플래그가 활성화 된 경우이를 지원합니다 .
console.time("go");for (var i=0;i<10000000;++i) {} console.timeEnd("go");
숫자와 64 비트 숫자 비교console.time("go");for (var i=0n;i<10000000n;++i) {} console.timeEnd("go");