NSNumberFormatter 绝对是要走的路!您可以在 NSNumberFormatter 上设置 NSLocale,格式化程序将根据该语言环境自动运行。数字格式化程序的默认语言环境始终是用户选择的区域格式的货币。
NSDecimalNumber *someAmount = [NSDecimalNumber decimalNumberWithString:@"5.00"];
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSLog(@"%@", [currencyFormatter stringFromNumber:someAmount]);
这将根据用户的默认区域格式记录数量“5.00”。如果要更改货币,您可以设置:
NSLocale *aLocale = [[NSLocale alloc] initWithLocaleIdentifier: "nl-NL"]
[currencyFormatter setLocale:aLocale];
它将选择该语言环境的默认货币。
通常,尽管您不是以用户的当地货币收费,而是以您自己的货币收费。要强制NSNumberFormatter
以您的货币格式化,同时保持用户偏好的数字格式,请使用:
currencyFormatter.currencyCode = @"USD"
currencyFormatter.internationalCurrencySymbol = @"$"
currencyFormatter.currencySymbol = @"$"
在 en-US 中,这将像$5.00
在 nl-NL 中一样格式化为$ 5,00
.