2013-03-11 3 views
2

Я использую NSNumberFormatter для форматирования чисел в строках. У меня есть устройство с форматом иврита (Израиль) (настройки-> Общие-> Международные-> Формат региона). Когда я пытаюсь отформатировать число 100, например, я получаю 100 $. Моя цель - удалить пробел перед знаком валюты и получить всего 100 $NSNumberFormatter, удаляющий пробелы перед валютой

ответ

3

Я в конечном итоге изменения positiveSuffix и свойства negativeSuffix путем удаления пробелов из них

, потому что мой NSNumberFormatter статично в моем приложении я поставил их к нулю в конце каждое использование

static NSNumberFormatter *currencyFormatter; 
if (!currencyFormatter) { 
    currencyFormatter = [[NSNumberFormatter alloc] init]; 
    [currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
    [currencyFormatter setNegativeFormat:@""]; 
} 

// remove spaces at the suffix 
currencyFormatter.positiveSuffix = [currencyFormatter.positiveSuffix stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

currencyFormatter.negativeSuffix = [currencyFormatter.negativeSuffix stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 


// get the return number 
NSString* retNum = [currencyFormatter stringFromNumber:val]; 

// this code is for the next time using currencyFormatter 
currencyFormatter.positiveSuffix = nil; 
currencyFormatter.negativeSuffix = nil; 

return retNum; 
0

Как насчет того, чтобы просто удалить все пробелы из строки перед запуском через NSNumberFormatter? (Как ответ в этом question)

NSString *stringWithoutSpaces = [myString 
    stringByReplacingOccurrencesOfString:@" " withString:@""]; 
+2

В некоторых форматах пространства используются для разделения цифр вместо запятых. Я ищу безопасный способ – user1746700

+0

Возможно, вы могли бы заменить '$' '' ''? Но я предполагаю, что также может быть положение, которое нарушает это. – Patrick

 Смежные вопросы

  • Нет связанных вопросов^_^