NSNumberFormatter货币负数

Boi*_*red 2 foundation nsnumberformatter

我用这个

NSNumberFormatter *f = [[[NSNumberFormatter alloc] init] autorelease];
[f setNumberStyle:NSNumberFormatterCurrencyStyle];
[f setCurrencySymbol:NSLocalizedString(@"CURRENCY", @"Get Currency")];
NSString * stringCurrecy = [f stringFromNumber:(-70.00)];
Run Code Online (Sandbox Code Playgroud)

我使用NSLog并检查"stringCurrecy"是"($ 70.00)"我改变"(",")"符号.如何改变这个符号.

($ 70.00) - > - $ 70.00或$ -70.00

能够

Mat*_*uch 8

你必须设置负格式
添加这一行:

[f setNegativeFormat:@"-¤#,##0.00"];
Run Code Online (Sandbox Code Playgroud)

但也许你只想用[f setLocale:]设置语言环境,而不是自己设置每个格式选项.

并且下次发布编译的代码.


Ped*_*eno 5

我有一个NSNumber类别,它执行此操作:

@implementation NSNumber (Formatter)

- (NSString *)currencyStringValue
{
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    formatter.locale = [NSLocale currentLocale];
    formatter.numberStyle = NSNumberFormatterCurrencyStyle;
    formatter.negativePrefix = [NSString stringWithFormat:@"- %@", formatter.currencySymbol];
    formatter.negativeSuffix = @"";

    return [formatter stringFromNumber:self];
}

@end
Run Code Online (Sandbox Code Playgroud)