आप शायद कुछ इस तरह चाहते हैं (मुद्रा यह सोचते हैं एक नाव है): 52 0.52 के रूप में आप 100.0 से विभाजित करने के लिए आवश्यकता हो सकती है
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:currency]];
अपनी आवश्यकताओं से इलाज करने के लिए।
इस दृष्टिकोण के बारे में अच्छी बात यह है कि यह वर्तमान लोकेल का सम्मान करेगा। तो, जहां उचित हो यह आपके उदाहरण को "5.212,42" के रूप में प्रारूपित करेगा।
अद्यतन: मैं शायद, उदाहरण के लिए पोस्ट करने में थोड़ा तेज़ था। जैसा कि मुद्रा रकम से निपटने के दौरान, कॉनराड शल्ट्ज़ द्वारा इंगित किया गया है, मात्रा को NSDecimalNumber
एस के रूप में स्टोर करना बेहतर होगा। यह गोलाकार त्रुटियों के साथ सिरदर्द को बहुत कम कर देगा। आप ऐसा करते हैं तो इसके बाद के संस्करण कोड स्निपेट हो जाता है (यह मानते हुए मुद्रा एक NSDecimalNumber*
है):
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSString *numberAsString = [numberFormatter stringFromNumber:currency];
सटीक मूल्यों (विशेष रूप से मुद्रा) के लिए कभी भी फ़्लोट का उपयोग न करें! NSDecimalNumber/NSDecimal का प्रयोग करें। –
बहुत बढ़िया!मैंने यह काम किया था लेकिन डबल दशमलव के साथ संघर्ष कर रहा था .. यह इतना स्पष्ट था कि मैंने इसे याद किया। धन्यवाद! –
आपका बहुत स्वागत है! – idz