NSNumberFormatter是格式化NSDecimalNumber的唯一方法吗?

Pau*_*der 11 iphone cocoa objective-c

我正在使用NSDecimalNumber在Core Data中存储资金.我天真地使用stringWithFormat:首先要格式化值,后来意识到它不支持NSDecimalNumber而是格式化指针:(.所以在通过文档阅读之后我学会了使用NSNumberFormatter来获取我想要的格式.但这只是让我觉得"艰难的道路".有没有比这更简单的方法:?

NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle: NSNumberFormatterCurrencyStyle];
priceField.text = [formatter stringFromNumber: ent.price];
[formatter release];
Run Code Online (Sandbox Code Playgroud)

小智 18

在iOS 4.0及更高版本中,您可以使用此方法:

NSString* currencyString = [NSNumberFormatter 
                                 localizedStringFromNumber:number
                                 numberStyle:NSNumberFormatterCurrencyStyle];
Run Code Online (Sandbox Code Playgroud)


Sha*_*rog 13

这种方法没有任何问题,它是将不透明数字类转换为字符串的传统模式.

如果我UIView经常使用格式化程序,我通常会有一个作为实例成员,所以我不必重复alloc/ init/ release格式化.