1) 당신은) browserling에서 자신을 그것을 밖으로 시도하고 따옴표없이 ("https://jsfiddle.net/jz350gf1/1/"
에 펀치 수 있습니다. 빨간색이 표시되면 지원되지 않습니다.
자바 스크립트 코드는 document.body.bgColor = Number.EPSILON !== undefined ? 'lime' : 'red';
입니다.
IE9 및 Vista의 Safari 5.1에서는이를 지원하지 않습니다.
the MDN page for Number.EPSILON 하단에도 호환성 표가 있습니다. 현재로서는 크롬, 파이어 폭스 및 오페라에서만 지원한다고 주장합니다. Safari 버전 5.1 이상을 지원할 수 있습니다. 나는 그것을 시험해 볼 맥이 없다.
caniuse.com에서 here's은 기능이 ES6에 의해 도입되는 곳입니다. 최근 버전의 Safari와 같은 기능이 완벽하게 지원됩니다. 나는 그것이 얼마나 멀리 뒤로가는 지에 관해 명확히하지 않는다. 당시와 지금의 버전은 사파리의 어두운 시대였습니다. Opera가 결국 Opera를 지원하지 않을 수 있습니까? 아니, 지원하지.
어느 쪽이든, 2) 예. 상수는 상수입니다. 배정 밀도 부동 소수점에 대한 엡실론은 항상 모든 언어에서 동일 할 것입니다. this wiki page에 따라 값을 구체적으로 파생해야하지만 계산을 통해 파생시킬 수 있어야합니다. Here's a demonstration.
function getEpsilon() {
var e = 1.0;
while ((1.0 + 0.5 * e) !== 1.0)
e *= 0.5;
return e;
}
alert("And the epsilon is... "+getEpsilon());
당신은 소수점 숫자 형 부동 배정 밀도보다 적은 것을 사용할 수있다 부적합 브라우저에 대한 슈퍼 pendantic 수 있도록하려면 내가 아무도 믿을 수 없지만 그래서 당신은, var eps = Number.EPSILON || getEpsilon();
을 할 수 존재 (나는 예외에 열려있다). :)
대단히 감사합니다. :) – Fidel90
기술적으로 더 정확하지만 (실제로는 유용하지 않은) 엡실론의 대안 계산을 선호하는 경우 계산 된 값이 다시 한 번 반으로됩니다 ('1.1102230246251565e-16'). 주어진 값과의 비교에서이 값을 사용하려면 반올림 오류가 1 비트 (1/2 비트가 아니기 때문에)와 프로세스가 무의미하기 때문에 두 배로해야합니다. 그래서 위키 페이지의 두 컬럼을 설명합니다. ('b^{- (p-1)}/2' 대'b^{- (p-1)}') – TylerY86
Doh, 절반 -> 절반. – TylerY86