2012-09-19 3 views
5

세그먼트 화 된 컨트롤이있는 부동 소수점의 자릿수를 설정하려고합니다.iPhone : 부동 소수점 뒤에 몇 자리가 있어야합니까?

그래서 "0", "1", "2"및 "3"으로 분할 컨트롤을 만들었습니다. 변수 (self._segmentedControl.selectedSegmentIndex)로 쉼표 뒤에 숫자를 설정하고 싶습니다.

은 내가 쉼표은 다음과 같이해야합니다 얼마나 많은 숫자 후 결정할 수 있다는 사실을 알고 :

sliderValue.text = [NSString stringWithFormat:@"%.3f",slider.value]; 

누군가가 저를 도와 주실 수 있습니까?

+1

그리고 엑스 코드 관련 질문입니다 : ??? –

+0

어떻게 self._segmentedControl.selectedSegmentIndex의 출력으로 숫자를 설정할 수 있습니까? – MaxB

+0

문제는 ** 그 중 하나가 * Xcode와 관련이 없습니다 ***입니다. –

답변

7

당신은 한 번에 그것을 할 수 있습니다 :

sliderValue.text = [NSString stringWithFormat:@"%.*f", numberOfDigits, slider.value]; 
2

두 단계로 수행 할 수 있습니다.

NSString *format = [NSString stringWithFormat:@"%%.%df", numberOfDigits); 
sliderValue.text = [NSString stringWithFormat:format, slider.value]; 
+0

오. 나의. 하나님. 너 8 초 만에 내게 그것을 깨었다! 그리고 우리는 심지어 형식 문자열에 동일한 변수 이름을 사용했습니다. –

+0

Downvoter : ** reason ??? ** 누군가가 여기에 와서 무작위로 유효한 응답을 downvoting하는 이유! 익명의 살인자, 너 자신을 망쳐 라! ***이 대답은 좋습니다 !!! *** –

2
NSString *format = [NSString stringWithFormat:@"%%.%df", numberOfDecimalPlaces]; 
sliderValue.text = [NSString stringWithFormat:format, slider.value]; 

이 트릭을 할해야합니다. 형식 문자열 공격을 조심하십시오.

+0

와우, 이번에는 거의 똑같은 해결책을 얻었습니다. :-) – DrummerB

+0

Downvoter : ** 이유 ??? ** –

+0

아마 누군가가 하나의 라이너 솔루션을 좋아하니? – nhahtdh

1

이것이 작동하는지 확인하십시오. 나는 C++로만 이것을 테스트했지만, String Format에 대한 문서가 IEEE printf specification을 가리키고 있기 때문에 Objective-C에서도 작동해야한다고 생각합니다.

sliderValue.text = [NSString stringWithFormat: @"%.*f", places, slider.value]; 
+0

작품입니다. ("게시물"을 치기 전에 답을 보지 못했습니다.) –