2011-09-16 3 views
0

처음에는 뷰의 알파를 0.4로 설정 했으므로 나중에 aView.alpha == 0.4 일 때 일부 동작을 원하지만 비교가 실패했습니다.UIView 알파 값 비교 오류

코드 : 나는 0.5 알파를 설정할 때

aView.alpha = 0.4; 
...//never changes aView.alpha. 
if (aView.alpha == 0.4) { 
    //this compare failed. 
} 

하지만은, 작동!

aView.alpha = 0.5; 
... 
if (aView.alpha == 0.5) { 
    //it's OK. 
} 

뭐가 잘못 되었나요?

답변

1

평등을 사용하여 플로트를 비교하지 마십시오. 그것은 작동 할 수 있습니다 (분명히 "양수 0"과 "음수 0"은 정확한 값입니다). 그러나 당신은 작은 차이가 있는지 확인해야합니다. 마찬가지로 :

#define TINY_DELTA (.0001f) 

if(fabsf(floatA - floatB) < TINY_DELTA) { 
    // equal for all intensive porpoises 
} 

을 (.. 사실 당신이 거기 복식이 In general, use "0.5f" to use floats.이 밖에 대부분의 하드웨어에 일반적으로 빠르다)

+0

감사합니다 "0.4f는"OK입니다. – fannheyward