【问题标题】:NSNumberFormatter currency negative numberNSNumberFormatter 货币负数
【发布时间】:2011-02-11 07:15:10
【问题描述】:

我当前的代码是

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

【问题讨论】:

    标签: foundation nsnumberformatter


    【解决方案1】:

    您必须设置否定格式。 添加这一行:

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

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

    (以及下一次发布可以编译的代码。)

    【讨论】:

    • ( 70,00 $) -> - 70,00 $ 我想根据本地化显示。任何人都可以提供解决方案
    【解决方案2】:

    我有一个执行此操作的 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
    

    【讨论】:

      【解决方案3】:

      将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。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多