2012-09-19 23 views
5

के डॉट के बाद कितने अंक होना चाहिए मैं एक सेगमेंट नियंत्रण के साथ एक फ्लोट के अंकों की संख्या निर्धारित करने की कोशिश कर रहा हूं।आईफोन: फ्लोट

इसलिए मैंने "0", "1", "2" और "3" के साथ एक खंडित नियंत्रण बनाया है। मैं एक चर के साथ अल्पविराम के बाद अंक सेट करना चाहता हूं (self._segmentedControl.selectedSegmentIndex)।

मैं जानता हूँ कि मैं तय कर सकते हैं कि कितने अंक के बाद एक अल्पविराम इस तरह होना चाहिए:

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

कोई मेरी मदद कर सकते हैं?

+1

करके अपने Xcode से संबंधित सवाल यह है: ??? –

+0

मैं self._segmentedControl.selectedSegmentIndex – MaxB

+0

के आउटपुट के साथ digts की संख्या कैसे सेट कर सकता हूं समस्या यह है कि ** एक * एक्सकोड से संबंधित *** नहीं है। –

उत्तर

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

डाउनवॉटर: ** कारण ??? ** क्यों कोई यहां आ रहा है और यादृच्छिक रूप से वैध उत्तरों को कम कर रहा है! जाओ खुद को, अज्ञात हत्यारा जाओ! *** यह जवाब अच्छा है !!! *** –

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

इस चाल करना चाहिए। प्रारूप स्ट्रिंग हमलों से सावधान रहें।

+0

वाह, इस बार हमें लगभग एक ही समाधान मिला। :-) – DrummerB

+0

डाउनवॉटर: ** कारण ??? ** –

+0

शायद किसी को एक लाइनर समाधान पसंद है? – nhahtdh

1

जांचें कि यह काम करता है या नहीं। मैंने केवल सी ++ के साथ इसका परीक्षण किया, लेकिन String Format अंक IEEE printf specification के लिए प्रलेखन के बाद से, मेरा मानना ​​है कि इसे उद्देश्य-सी के लिए भी काम करना चाहिए।

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

यह काम करता है। (मुझे "पोस्ट" मारने से पहले आपका जवाब नहीं मिला।) –

संबंधित मुद्दे