2012-07-19 13 views
5

मैं कोको-टच पर सही स्थानीयकरण के साथ एक फ़्लोटिंग पॉइंट नंबर का स्वरूपित आउटपुट बनाना चाहता हूं। आउटपुट printf("%<a>.<b>f", n) के बराबर होना चाहिए, जहां <a> अंकों की कुल संख्या है और <f> आंशिक अंकों की अधिकतम संख्या है।आईओएस पर फ्लोट नंबरों को प्रारूपित और प्रिंट कैसे करें?

<a>=6 साथ NSNumberFormatter और <f>=2 का सेटअप: Test: 2,64

:

NSNumberFormatter *nf = [[NSNumberFormatter alloc] init]; 
[nf setNumberStyle:NSNumberFormatterDecimalStyle]; 
[nf setPaddingCharacter:@" "]; 
[nf setUsesGroupingSeparator:NO]; 
[nf setLocale:[NSLocale autoupdatingCurrentLocale]]; 
[nf setUsesSignificantDigits:YES]; 
[nf setMaximumSignificantDigits:6]; 
[nf setMaximumFractionDigits:2]; 
[nf setRoundingMode:NSNumberFormatterRoundFloor]; 
NSLog(@"Test: %@", [nf stringFromNumber:[NSNumber numberWithDouble:2.64324897]]); 

अपेक्षित उत्पादन (जर्मन स्थान के साथ) (मंच iOS 5.1 एसडीके, Xcode 4.3.3 और iPhone सिम्युलेटर 5.1 है)

निरीक्षण आउटपुट (जर्मन लोकेल के साथ): Test: 2,64324

अन्य अवलोकन: मैंने अंश अंकों के लिए अलग-अलग मानों का उपयोग करने का प्रयास किया है, उदाहरण के लिए [nf setMaximumFractionDigits:4] या [nf setMaximumFractionDigits:0]। परिणाम अपरिवर्तित है, ऐसा प्रतीत होता है कि अंश अंक अनदेखा कर रहे हैं। यूएस में लोकेल बदलना केवल , को . में बदलता है, न कि अंश अंकों की संख्या।

प्रश्न: मैं printf -format स्ट्रिंग को NSNumberFormatter पर सही तरीके से कैसे अनुवाद कर सकता हूं?

उत्तर

11

रयान पूरी तरह गलत नहीं है। localizedStringWithFormat विधि का उपयोग करें:

का उपयोग कर उद्देश्य-सी

NSNumber *yourNumber = [nf numberFromString:yourString]; 
//to create the formatted NSNumber object 

NSString *yourString = [NSString localizedStringWithFormat:@"%.2F", yourNumber]; 
//to create the localized output 

स्विफ्ट 3

let yourString: String 
yourString = String.localizedStringWithFormat("%.2F", yourDoubleNumber) //no need for NSNumber Object 

थोड़ा सा देर का उपयोग कर लेकिन यह अभी भी मदद कर सकता है। सौभाग्य!

+0

हां, यह वही करता है जो इसे करने की ज़रूरत है! धन्यवाद, यहां तक ​​कि देर से जवाब की सराहना की जाती है! – user8472

+0

आपका स्वागत है! मुझे स्थानीयकरण के साथ कुछ कठिनाइयों भी थीं। सौभाग्य! – JFS

+0

जादू। और वहां मैं एनएसएनंबर श्रेणियां लिख रहा था ... जब मुझे बस इतना पहले, साफ और सरल था। यह छोटी चीजें हैं जो हमें ऐप्पल का बहुत शौकिया बनाती हैं। – KPM

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