2013-06-04 3 views
0

JavaScript의 부동 소수점 제한이 무엇인지 궁금합니다. 다음과 같이 자세한 부동 소수점 결과를 반환하지 않는 다음 코드를 가지고 있습니다.JavaScript 부동 소수점

2e-2 is the same as 0.02 



var numero = 1E-12; 
document.write(numero); 

은 1e-12를 반환합니다.

JavaScript가 처리 할 수있는 최대 지수 결과는 무엇입니까?

답변

3

JavaScript는 Ecma-262과 ISO/IEC 16262로 지정된 ECMAScript 구현입니다. Ecma-262는 IEEE 754 64 비트 2 진 부동 소수점을 사용하도록 지정합니다. 이 형식

은 작은 양수 2 -1074 (약간 4.94e-324) 이상이고, 최대의 한정된 개수 (1.798e308 약간 아래) 2 1,024 -2 971이다. Infinity를 표현할 수 있으므로이 의미에서 JavaScript의 숫자 값에는 상한이 없습니다.

이 형식의 숫자는 유효 숫자 (분수 부분)에 최대 53 비트를 포함합니다. 숫자가 2보다 작 으면 (-1022은 비정상이며 비트 수가 더 적습니다.) 제한된 수의 비트는 예제에서 .02를 포함하여 많은 숫자가 정확하게 표현되지 않음을 의미합니다. 결과적으로 산술 연산의 결과는 가장 가까운 표현 가능한 값으로 반올림되며 계산 체인에서 오류가 취소되거나 축적 될 수 있습니다.

형식에는 NaN (숫자가 아님)이라는 특수 엔터티도 포함됩니다. NaN는, 수치가 초기화되어 있지 않은 것을 나타 내기 위해서 (때문에), 특수한 디버그를 위해서 (때문에), 또는 번호가 적절하지 않은 조작의 결과 (-1의 제곱근 등)를 나타 내기 위해서 (때문에) 사용할 수 있습니다.

0

최대 값은 0보다 작습니다.?

자세한 내용은 here입니다. 기본적으로 0.00000x는 지수로 표시됩니다 (소수점 이하 5 자리).

물론이 동작이 신뢰할 수있는 브라우저인지 확인하기 위해 직접 테스트 해 볼 수 있습니다.

개인적으로 나는이 행동에 대해 우려하거나 의존해서는 안된다고 생각합니다. 숫자를 표시하려고 올 때 적절하게 형식을 지정하십시오.