2012-08-02 8 views
3

-1에서 2까지의 연속적인 값 범위를 나타내는 UISlider가 있다고 가정합니다. 기본값 인 min = 0, max = 1을 그대로 유지하면 내 값은 0입니다. 슬라이더가 이동 거리의 1/3이고 부동 소수점 값이 1/3 (0.33333333)입니다. 나는 특히 특별한 가치 0에 관심이 있고 (약간) 반올림해야 할 0.333333으로 그것을 표현하는 것은 잘못되었다고 느낀다. 최소값을 -1로, 최대 값을 2로 변경하면 제 0 값은 정확히 0.0의 부동 값입니다.반올림하여 UISlider의 최소/최대 설정 변경 정확도가

최소/최대를 설정하면 정확도가 향상됩니까? 엄지 손가락이 픽셀 경계 위로 이동합니까? 반올림 예제를 시도하기 위해 해당 정보를 사용할 수 있습니까?

+0

나는 당신이 묻는 것을 혼란스러워합니다. 당신은'slider.minimumValue = -1.0;'과'slider.maximumValue = 2.0;'을 설정할 수 없습니까? 그런 다음'slider.value = 0;'? slider.value는 부동 소수점이어야합니다. – mkral

+0

좋아, 지금 네가 무엇을 요구하는지 보았다. 정규화 여부에 상관없이 플로트 값을 사용하기 때문에 정확도가 변하지 않을 것이라고 생각합니다. – mkral

+0

슬라이더의 길이가 900 픽셀이고 픽셀 300에 위치하는 경우 한 경우에는 0.3333의 값을 얻고 다른 값은 0.00000 값을 얻습니다. 한 경우에는 반올림 오류가 있고 다른 오류는 반올림 오류가 있습니다. 또는 나는 무엇인가 놓치고 있냐? – Ant

답변

1

여기서 중요한 것이 아닌가 의심됩니다. 첫째, 단 정밀도 float은 분수가 23 비트이므로 모든 반올림 오류는 2 ** 24에서 한 부분보다 작습니다. 이는 화면 해상도를 크게 초과하므로 화면에 반올림 효과가 표시되지 않습니다. 둘째, 끝점에 둥근 값을 설정하더라도 다른 소프트웨어에서 슬라이더 좌표를 화면 픽셀에 매핑해야하며 그 반대의 경우도 마찬가지입니다. 이러한 포인터는 비 둥근 값을 포함 할 가능성이 큽니다.

+0

수정 - 정확히 특정 숫자가 될 수 없다는 사실을 받아들입니다 (0을 제외하고). –

+0

@AdamB 재미있는 점은 정확히 정확히 0에 관심이 있지만 어쩌면 최종 값을 제외한 값을 얻지 못한다는 사실을 받아 들였습니다. – Ant

관련 문제