2011-02-11 132 views
1

我用這個NSNumberFormatter貨幣負數

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

我使用的NSLog並勾選 「stringCurrecy」 是 「($ 70.00)」 我改變 「(」 「)」 符號。如何改變這個符號。

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

可以

回答

8

你必須設置負格式
加入這一行:

[f setNegativeFormat:@"-¤#,##0.00"]; 

但也許你只是想使用[f setLocale:]設置區域設置,而不是單獨設置每個格式選項。

以及下次編譯後的郵編。

+0

哦!非常感謝你!!謝謝你,謝謝你 – Boinred 2011-02-12 06:23:57

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 
0

正好被設置爲減號負格式:

[f setNegativeFormat:@"-"]; 
1

設置negativeFormat以「 - 」幾乎是爲我工作,但它正在放棄貨幣符號。至少對於en_US區域,這符合我的需求:

NSLocale *US = [NSLocale localeWithLocaleIdentifier:@"en_US"]; 
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init]; 
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
[currencyFormatter setCurrencyCode:currencyCode]; 
[currencyFormatter setLocale:priceLocale]; 

//manually add - prefix to positive format... 
NSString *negFormat = [NSString stringWithFormat:@"-%@",currencyFormatter.positiveFormat]; 
[currencyFormatter setNegativeFormat:negFormat]; 

我不知道這是否是適合於所有的語言環境,但它適用於EN_US。

相關問題