Я использую NSDecimalNumber для хранения денег в Базовых Данных. Я наивно использовал stringWithFormat: сначала для форматирования значения, позже поняв, что это не поддерживало NSDecimalNumber и вместо этого форматировало указатель :(. Таким образом, после некоторого прочтения документов я учился использовать NSNumberFormatter для получения формата, который я хотел. Но это просто кажется мне "твердым путем". Есть ли любой более легкий путь, чем это:?
NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle: NSNumberFormatterCurrencyStyle];
priceField.text = [formatter stringFromNumber: ent.price];
[formatter release];
В этом подходе нет ничего плохого, и это обычный шаблон для преобразования непрозрачных классов чисел в строки.
Если у меня есть UIView
, который часто использует форматер, я обычно располагаю его как член экземпляра, чтобы избежать необходимости многократно alloc
/init
/release
форматер.
NSNumberFormatter может быть дорогостоящим, почему бы просто не позвонить [ent descriptionWithLocale:]
Просто преобразуйте его в двойное и используйте "F"
[NSString (скрытый) [ent doubleValue]];