2016-02-26 69 views
0

为数字,格式化后,我希望它显示为$ 050,下面的代码不起作用。但是如果我使用NSNumberFormatterDecimalStyle,它可以显示050.你知道为什么吗?生成前导零与货币的NSNumberFormatter

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); 

回答

1

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