के लिए फ्लोट स्वरूपित करते समय आंशिक और अंकों की कुल संख्या दोनों को सीमित करना मुझे सीमित चौड़ाई के क्षेत्र में सबसे अधिक कुशलता से फ़्लोट मान मुद्रित करने की आवश्यकता है। मैं NSNumberFormatter
का उपयोग कर रहा हूं, और मैंने दशमलव बिंदु के बाद डिफ़ॉल्ट संख्या के रूप में दो नंबर सेट किए हैं, ताकि जब मेरे पास 234.25
जैसी संख्या हो, तो यह 234.25
जैसा मुद्रित है। लेकिन जब मेरे पास 1234.25
है, तो मैं इसे मुद्रित करना चाहता हूं: 1234.3
, और 11234.25
11234
मुद्रित किया जाना चाहिए।प्रदर्शन
मुझे बिंदु के बाद अधिकतम दो अंक की आवश्यकता है, और यदि मेरे पास बिंदु के बाद अंक हैं तो कुल मिलाकर अधिकतम पांच अंक, लेकिन पूर्णांक भाग में अधिक होने पर इसे पांच अंकों से अधिक प्रिंट करना चाहिए।
मुझे NSNumberFormatter
में अंकों की कुल संख्या सीमित करने की क्षमता दिखाई नहीं दे रही है। क्या इसका मतलब यह है कि मुझे इस तरह के प्रारूपों को प्रारूपित करने के लिए अपना स्वयं का फ़ंक्शन लिखना चाहिए? यदि ऐसा है, तो संख्या के पूर्णांक और fractional भागों में अंकों की गिनती प्राप्त करने का सही तरीका क्या है? मैं अतिरिक्त प्रकार के रूपांतरणों से बचने के लिए NSNumber
के बजाय CGFLoat
के साथ काम करना पसंद करूंगा।
@JacquesCousteau मुझे पता है का उपयोग करें; यह अभी भी एक उदाहरण है, है ना? –
धन्यवाद। यह कार्यान्वयन काफी सार्वभौमिक दिखता है, लेकिन मैं दक्षता के बारे में चिंतित हूं। क्या एनएसएसटींग की तुलना में कुछ और कुशल हो सकता है? या स्ट्रिंग की लंबाई गिनने के अलावा संख्या में अंकों की संख्या गिनने का कोई तरीका नहीं है? मैं प्रोग्राम के चलते हर समय एनीमेशन के हर फ्रेम में लगातार यह रूपांतरण करने जा रहा हूं। क्या यह मुश्किल नहीं होगा? – BartoNaz
@ बार्टोनाज़: किसी संख्या का आधार -10 लॉगरिदम लगभग पूर्णांक की लंबाई - 1 है: 'log10f (11123.25) -> 4.046221' –