पर कॉमा के साथ अलग संख्या मेरे पास एक एनएसआईएनटेगर (मूल्य 60000 के साथ कहें), जब मैं को स्ट्रिंग करने के लिए परिवर्तित करता हूं, तो मैं "60000" के के बजाय "60,000" प्राप्त करना चाहता हूं। क्या ऐसा करने के लिए कोई तरीका है? धन्यवाद।स्ट्रिंग आईओएस
उत्तर
एक नंबर फ़ॉर्मेटर का उपयोग करें:
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setNumberStyle:NSNumberFormatterDecimalStyle]; // to get commas (or locale equivalent)
[fmt setMaximumFractionDigits:0]; // to avoid any decimal
NSInteger value = 60000;
NSString *result = [fmt stringFromNumber:@(value)];
हाय के साथ डुप्लीकेट, आपके उत्तर के लिए धन्यवाद। यह काम करता हैं। हालांकि दो छोटे प्रश्न। मुझे यह "लोकेल" हर समय उल्लेख किया जा रहा है, वैसे भी क्या है? और, आपके दृष्टिकोण में, यह कैसे पता चलता है कि उदाहरण के लिए 2 के बजाय, प्रत्येक 3 अंकों के बाद इसे अल्पविराम निर्धारित करना चाहिए? और अंत में, क्या यह आईओएस 4.3 के लिए भी काम करेगा? धन्यवाद। – user1903992
लोकेल के विवरण के लिए 'NSLocale' के लिए दस्तावेज़ देखें। संक्षेप में यह दुनिया भर में भाषा और स्वरूपण मतभेदों से संबंधित है। कुछ देश 600000 के रूप में 600,000 दिखाएंगे। कुछ इसे 600.000 या 600 000 के रूप में दिखाएंगे। मेरा उत्तर 2.0 के बाद से आईओएस के सभी संस्करणों के लिए लागू होता है। 'NSNumberFormatter' के लिए दस्तावेज़ देखें - विशेष रूप से समूह से संबंधित। डिफ़ॉल्ट 3 अंक है। – rmaddy
आपकी प्रतिक्रिया के लिए धन्यवाद। (यद्यपि यहां छोटे उत्तर सबमिट नहीं कर सकते हैं :))। – user1903992
इस प्रयास करें,
NSString *numString = [NSString stringWithFormat:@"%d,%d",num/1000,num%1000];
यह उन स्थानीय लोगों के लिए मान्य नहीं है जो अन्य स्वरूपण का उपयोग करते हैं और यह बड़ी संख्याओं (या छोटी संख्याओं) को संभाल नहीं पाएगा। – rmaddy
@rmaddy ठीक है .. धन्यवाद और आपके उत्तर के लिए +1 ... :) –
आप एक नंबर फ़ॉर्मेटर का उपयोग कर सकते हैं: एक स्थानीय करने के लिए संख्यात्मक डेटा फ़ॉर्मेट करने के लिए
NSNumberFormatter* numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle];
NSString *numberString = [numberFormatter stringFromNumber: [NSNumber numberWithInteger: i]];
उपयोग NSNumberFormatter
स्ट्रिंग प्रतिनिधित्व।
int aNum = 60000;
NSString *display = [NSNumberFormatter localizedStringFromNumber:@(aNum)
numberStyle:NSNumberFormatterCurrencyStyle];
ऐसा करने पर, आप मिल जाएगा '$ 60,000.00'
उसके बाद, आप $ और के हस्ताक्षर को हटा सकते हैं '।' (दशमलव) ऐसा करके ..
NSString *Str = [display stringByReplacingOccurrencesOfString:@"$" withString:@""];
NSString *Str1 = [Str stringByReplacingOccurrencesOfString:@"." withString:@""];
NSString *newString = [Str1 substringToIndex:[Str1 length]-1];
NSString *newString1 = [newString substringToIndex:[newString length]-1];
'newString1' आपको आवश्यक परिणाम देगा।
यह कोड अत्यधिक जटिल है और यह कई मामलों में विफल हो जाएगा। यह '$' के अलावा मुद्रा चिह्न का उपयोग कर लोकेशंस के लिए काम नहीं करेगा। यह उन स्थानों के लिए भी विफल रहता है जो '.' के अलावा दशमलव विभाजक का उपयोग करते हैं। यह उन स्थानीय लोगों के लिए भी विफल रहता है जो मुद्रा के लिए 2 दशमलव स्थानों का उपयोग नहीं करते हैं। – rmaddy
@rmaddy कि कोड केवल इस विशेष स्थिति के लिए है ..... –
इसका क्या अर्थ है? क्या स्थिति? क्या आप प्रस्ताव दे रहे हैं कि उत्तर सभी अलग-अलग स्थानों को संभालने के लिए कोड का एक पूरा सेट लिखना है? – rmaddy
- 1. स्ट्रिंग आईओएस
- 2. आईओएस: एनएसएसटींग एक स्ट्रिंग
- 3. आईओएस - एक स्ट्रिंग
- 4. उद्देश्य-सी/आईओएस: जेएसओएन स्ट्रिंग
- 5. आईओएस - NSLocalizedString केवल कुंजी स्ट्रिंग
- 6. आईओएस: सत्यापित करें कि कोई स्ट्रिंग एक खाली स्ट्रिंग है
- 7. आईओएस
- 8. आईओएस
- 9. आईओएस
- 10. आईओएस
- 11. आईओएस
- 12. आईओएस
- 13. आईओएस
- 14. आईओएस
- 15. आईओएस
- 16. आईओएस
- 17. आईओएस ऐप के लिए गतिशील स्थानीयकरण .स्ट्रिंग परिभाषाएं?
- 18. आईओएस: स्ट्रिप <img...> एनएसएसटींग (एक एचटीएमएल स्ट्रिंग) से
- 19. आईओएस एसडीके
- 20. आईओएस
- 21. आईओएस 5
- 22. आईओएस
- 23. आईओएस
- 24. आईओएस
- 25. आईओएस
- 26. आईओएस
- 27. आईओएस
- 28. आईओएस
- 29. आईओएस
- 30. आईओएस
http://stackoverflow.com/questions/2233824/how-to-add-commas-to-number-every-3-digits-in-objective-c – Nazir