使用 NSNumberFormatter for Currency 生成前导零



对于数字,格式化后,我希望它显示为 $050,下面的代码不起作用。但是如果我使用 NSNumberFormatterDecimalStyle,它可以显示 050。你知道为什么吗?

    NSNumberFormatter *f = [[NSNumberFormatter alloc] init] ;
    f.numberStyle = NSNumberFormatterNoStyle;
    NSNumber *myNumber;
    NSString *myString;     
    myNumber = [f numberFromString:@"50"]; // Note that the extra zeros are useless
    [f setNumberStyle:NSNumberFormatterCurrencyAccountingStyle];
    [f setFormatWidth:3];
    //[f setPaddingPosition:NSNumberFormatterPadAfterPrefix];
    [f setPaddingCharacter:@"0"];
    myString = [f stringFromNumber:myNumber];
    NSLog(@"myString: %@",myString);

无聊的答案是,美国货币风格(以及澳大利亚和加拿大,据我所知)从不使用前导零,除非金额为零美元和一些美分(例如"$0.43")。另一方面,NSNumberFormatterDecimalStyle可以使用填充零。

相关内容

  • 没有找到相关文章

最新更新