2011-12-30 2 views
6

변수 (변수가 float, double 또는 int 일 수 있음)가 특정 수에 근접하는지 확인할 수 있습니까? 나는 약간의 구글 검색을했으나 아무 것도 나오지 않았다.변수가 x에 접근하는지 프로그래밍 방식으로 확인하는 방법은 무엇입니까?

예를 들어 x가 x보다 음수가되면 0에 가까워집니다.

+6

'접근 중'이란 무엇을 의미합니까? –

+1

점근 한계를 감지 할 수 있는지 묻고 있습니까 – rerun

+0

입력이 조금 얇습니다. "접근"하고 어떤 맥락에서 당신이 의미하는 것은 무엇입니까? –

답변

2

당신은 주어진 값이 X에 접근 여부를 측정하기 위해 Math.Abs 기능을 사용할 수 있습니다 : 당신이 할 수

double x = ... 
double someVariable = ... 

// define the precision you are working with 
double epsilon = 1e-6; 

// now test whether someVariable is approaching x 
if (Math.Abs(someVariable - x) < epsilon) 
{ 
    // someVariable is approaching x given the precision you have defined 
} 
+1

-1 : 함수가 값 x에 접근하는지 확인하지 않습니다. 닫을 때만 확인합니다. 가치에 접근하는 데는 훨씬 더 많은 시간이 필요합니다. – Dimme

+0

나는이 대답을 따른다는 확신이 없다. 뭔가가 x에 가까워지면 움직여야합니다. 그러나 여러분은 단지 하나의 값을 정의하고 그것이 목표에 가깝게 보이는지 보시는 것 같습니다. 아니면 마지막 비트가 어떤 종류의 루프에 포함되도록 의도 되었습니까? 그렇다면 짧은 시간 동안 뭔가가 x에 가까운 지 어떻게 판단 할 수 있습니까? – Chris

+0

@Dimme, Chris, 맞습니다. 이것은 변수가 이미 주어진 값에 근접한지를 검사하는 것입니다. 접근하는 한 우리 모두는 자신이하고있는 일, 그가 어떤 문제를 해결하기 위해 선택한 알고리즘, 어떤 어려움을 겪었는지 등에 대해 OP가 기다리고 있습니다 ... –

1

가장 가까운 것은 당신의 변수와 대상 사이의 차이의 크기를 비교하고, 참조 허용되는 임계 값보다 작 으면 엄밀히 말하면 에 접근하지 않고 을 닫습니다. (나는 많은 샘플이 목표를 향한 경향이 있음을 의미하는 "접근 중"이라고 생각합니다. 간단히 말해서, 특히 고조파 감쇠로는 거의 불가능합니다).

관련 문제