주어진 x 점에서 주어진 함수 Func을의 미분 값을 계산 한이를 생각 좋은 정밀도를 얻을 수있는 자바 스크립트에서 파생 된 계산 : 어떤 x + Number.MIN_VALUE
지금의 정보는 다음의 제품에
a = Fun(x - Number.MIN_VALUE)
b = Func(x + Number.MIN_VALUE)
return (b-a)/(2*Number.MIN_VALUE)
을 (또는 x - Number.MIN_VALUE
) 둘 다 자바 스크립트에서 x를 반환합니다.
다른 값을 시도했으며 1 + 1e-15
은 1.000000000000001을 반환합니다. 정밀도를 높이려고하면 1 + 1e-16
은 1
을 반환합니다. 따라서 5e-324
인 Number.MIN_VALUE 대신 1e-15
을 사용해야합니다.
자바 스크립트에서이 경우 더 나은 정밀도를 얻을 수있는 방법이 있습니까?
'1 - 1e-15'는 다음을 반환합니다 : '0.999999999999999'; '1 - 1e-16'은 다음을 반환합니다 :'0.9999999999999999'; 여기에 문제가 표시되지 않습니다. – Cerbrus
oops..edited. '1 + 1e-15'및 '1 + 1e-16'이다. – swair
작업 할 수있는 특정 "범위"의 정밀도가 있습니다. 이는 [부동 소수점] (http://en.wikipedia.org/wiki/Floating_point) 숫자가 작동하는 방식과 관련이 있습니다. 그래서'1.0'과'1e-17' 이하로 계산할 수없는 반면, _can_는 작은 수를 나타냅니다. – Cerbrus