【发布时间】:2013-08-05 12:07:06
【问题描述】:
我希望格式化程序将 -£4.00 显示为 -£4.00,但它一直显示为 (£4.00),这是为什么呢?
下面的这个函数将字符串“00000014”变成“£00.14”它也应该变成负值。但是数字格式化程序似乎添加了括号。
代码如下:
+(NSString *)pfsCurrencyAmountString:(NSString *)amount CurrencyCodeAsString:(NSString *)code{
if (amount == nil) {
return nil;
}
int amountLength = [amount length];
NSMutableString *amountMutable = [NSMutableString stringWithString:amount];
if (amountLength > 2) {
[amountMutable insertString:@"." atIndex:amountLength - 2];
}
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
NSNumberFormatter *currencyStyle = [[NSNumberFormatter alloc] init];
[currencyStyle setFormatterBehavior:NSNumberFormatterBehavior10_4];
[currencyStyle setNumberStyle:@"NSNumberFormatterCurrencyStyle"];
[currencyStyle setLocale:locale];
[currencyStyle setCurrencyCode:code];
NSNumber * balance = [currencyStyle numberFromString:amountMutable];
[currencyStyle setNumberStyle:NSNumberFormatterCurrencyStyle];
return [currencyStyle stringFromNumber:balance];
}
【问题讨论】:
-
NSNumberFormatterCurrencyStyle货币值可以是负数:O??? -
请先搜索现有答案,然后再询问新答案。
-
顺便说一句,
[currencyStyle setNumberStyle:@"NSNumberFormatterCurrencyStyle"];行不正确;使用[currencyStyle setNumberStyle:NSNumberFormatterCurrencyStyle];,就像你稍后所做的那样。
标签: ios objective-c nsnumberformatter