Currency Formatter para diferentes entornos locales en iOS

Quiero convertir esta cadena: 1000000 al formatting siguiente: 10,00,000 , pero 10,00,000 resultados así: 1,000,000 cual es incorrecto. Necesito 10,00,000 .

Mi código :

 NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; inputnumber = newString; NSNumberFormatter* formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; [formatter setCurrencySymbol:@""]; [formatter setMaximumFractionDigits:2]; [formatter setMinimumFractionDigits:2]; [formatter setUsesGroupingSeparator:YES]; [formatter setCurrencyGroupingSeparator:@","]; // [formatter setCurrencyDecimalSeparator:@"."]; [formatter setGroupingSeparator:@","]; NSNumber *num = [NSNumber numberWithDouble:[inputnumber doubleValue]]; inputnumber = [formatter stringFromNumber:num]; 

Es un formatting de moneda india. Por lo tanto, debe establecer @"en_IN" como currencyFormatter Locale .

Código de trabajo:

 NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init]; [currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; [currencyFormatter setCurrencySymbol:@""]; [currencyFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_IN"] autorelease]]; NSLog(@"Final Value :: %@", [currencyFormatter stringFromNumber:[NSNumber numberWithFloat:1000000]]); 

Para Swift, marque esto:

  let initalValue:NSString = "1000000" let currencyFormatter = NSNumberFormatter() currencyFormatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle currencyFormatter.locale = NSLocale (localeIdentifier: "en_IN") let formattedValue = currencyFormatter.stringFromNumber(initalValue.doubleValue) print(formattedValue)