У меня есть некоторые значения, которые мне нужно отформатировать в строку валюты. Похоже, что при использовании NSNumberFormatter для форматирования суммы результирующая строка валюты будет содержать один или несколько пробелов.
Например, использование следующего фрагмента кода для форматирования @"1000"
в формате европейской валюты приведет к возвращению @"1,000,00 €"
. Обратите внимание на пробел перед символом валюты.
NSNumberFormatter *tempNumberFormatter = [[NSNumberFormatter alloc] init];
[tempNumberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[tempNumberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[tempNumberFormatter setLocale:[NSLocale currentLocale]];
[tempNumberFormatter setGeneratesDecimalNumbers:YES];
[tempNumberFormatter setMaximumFractionDigits:2];
[tempNumberFormatter setMinimumFractionDigits:2];
[tempNumberFormatter setAlwaysShowsDecimalSeparator:YES];
NSString *value = @"1000";
NSNumber *number = [NSNumber numberWithFloat:[value doubleValue]];
NSString *result = [tempNumberFormatter stringFromNumber:number];
[tempNumberFormatter release];
// result = 1.000,00 €
Сначала я решил решить эту проблему легко, просто отфильтровав пробелы в строке, но по какой-то причине это не работает, следующий фрагмент кода не выполняет то, что я ожидал:
[result replaceOccurrencesOfString:@" " withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [result length])];
Есть ли способ использовать NSNumberFormatter для возврата отформатированной строки без пробелов в ней? (1.000,00€
)