2012-07-13 6 views
0

나는 안전하게 속도를 사용하기 위해 다음과 같은 메서드를 만들었습니다.
(때로는 속도가 INFINITY, NAN 같은 잘못된 값이 될, 또는 0-1 중 수)Objective-C : 부동 소수점 값을 0-1로 조정하는 메서드의 이름

-(double)XXXX:(double)rate 
    if (rate >= 1) { 
     return 1; 
    } else if (rate <= 0) { 
     return 0; 
    } else if (0 <= rate && rate <= 1) { 
     return rate; 
    } else { 
     return 0; 
    } 
} 

내가이 방법을 이름을해야합니까?

는 편집 :
내가 UISlider, UIProgress, 아니면 그냥을 STRING (XX의 %)와 시간의 진행 상황을 표시하기 위해 속도를 사용합니다. 방법의

사용법은 다음과 같습니다

currentTime = [objectOrClass XXXX:rate] * totalTime; 
+0

저는 objective-c에 새로운입니다. 그래서 나는 아직 그것의 규칙을 지명하는 것에 능숙하지 않다. –

+0

다른 언어에서와 같은 이름 -이 알고리즘을 지정한 사용자가 무엇을 호출할까요? – Mark

+0

- (double) returnRate : (double) rate – Nitish

답변

0
-(double) adjustRate:(double)rate; 
1
static inline float RateAligned(float rate) { 
    return MAX(.0f, MIN(1.0f, rate)); 
} 
+0

. 나는 '정적 인라인'을 몰랐다. 나는 그 기능을 테스트했고 작동한다. 나는 짧은 코드를 좋아한다. 그러나 MAX (.0f, NAN)는 0.0을 반환하지만 MAX (NAN, .0f)는 NAN을 반환합니다. 'MAX (.0f, NAN)가 0.0을 반환한다고 가정하는 것이 안전합니까? 아니면 구현에 종속적입니까? –

0
When totalTime is zero you will get INFINITY. 

When totalTime and currentTime both are zeros you will get NAN. 

When (currentTime + additionalTime) and currentTime both are zeros you will get NAN. 

내가 그에게 도움이 될 것이라고 생각 :

rate = [objectOrClass XXXX: currentTime/totalTime]; 
rate = [objectOrClass XXXX:(currentTime + additionalTime)/totalTime]; 

가 나는 또한 속도에서 currentTime을을 계산하는 데 사용 당신.

+1

질문을 이해했다고 생각하지 않습니다. –