2

私の現在のコードは

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

文字列の通貨を確認するために使用NSLogしていますが、「($ 70.00)」と出力されています。「(」、「)」記号を変更しました。どうすればこれを達成できますか:

( $ 70.00 ) -> - $70.00 or $ -70.00
4

3 に答える 3

8

負の形式を設定する必要があります。次の行を追加します。

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

[f setLocale:]しかし、すべての形式オプションを自分で設定するのではなく、ロケールを設定したいだけかもしれません。

(そして次回はコンパイルするコードを投稿します。)

于 2011-02-11T07:53:23.967 に答える
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
于 2012-09-04T18:56:41.253 に答える