मैं कोको-टच पर सही स्थानीयकरण के साथ एक फ़्लोटिंग पॉइंट नंबर का स्वरूपित आउटपुट बनाना चाहता हूं। आउटपुट 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
पर सही तरीके से कैसे अनुवाद कर सकता हूं?
हां, यह वही करता है जो इसे करने की ज़रूरत है! धन्यवाद, यहां तक कि देर से जवाब की सराहना की जाती है! – user8472
आपका स्वागत है! मुझे स्थानीयकरण के साथ कुछ कठिनाइयों भी थीं। सौभाग्य! – JFS
जादू। और वहां मैं एनएसएनंबर श्रेणियां लिख रहा था ... जब मुझे बस इतना पहले, साफ और सरल था। यह छोटी चीजें हैं जो हमें ऐप्पल का बहुत शौकिया बनाती हैं। – KPM