使用NSNumberFormatter格式化输出UILabel中的货币

时间:2010-03-05 05:13:39

标签: objective-c iphone iphone-sdk-3.0 uitextfield uilabel

NSNumberFormatter * fmt;
NSNumber          * n;

fmt = [ [ NSNumberFormatter alloc ] init ];
n   = [ NSNumber numberWithFloat: 10 ];

[ fmt setFormatterBehavior: NSNumberFormatterBehavior10_4 ];
[ fmt setCurrencySymbol: @"$" ];
[ fmt setNumberStyle: NSNumberFormatterCurrencyStyle ];

 // NSLog( @"%@", [ fmt stringFromNumber: n ];

[ fmt release ]


-(IBAction)buttonPressed1:(id)sender
 {
double currency = [Amount1.text doubleValue] + [Amount2.text doubleValue]; 

SumCurrency.text = [NSString stringWithFormat:@"%0.0f", currency];


 }

如何将SumCurrency.text格式化为1,999而不是1999

请帮助..我是Objective-C的新手,但我的项目几乎是95%的界面构建器。

我只需要帮助上面的代码来实现..请我为此付出很多努力。

问候, 新手。

3 个答案:

答案 0 :(得分:13)

我得到了答案..但是对于任何人未来的推荐

-(IBAction)buttonPressed1:(id)sender
{
    double currency = [Amount1.text doubleValue] + [Amount2.text doubleValue]; 
    NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
    [numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
    NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithInt:currency]];
    SumCurrency.text = [NSString stringWithFormat:@"Converted:%@",numberAsString];  
}

答案 1 :(得分:6)

NSNumberFormatter * fmt;
NSNumber          * n;

fmt = [ [ NSNumberFormatter alloc ] init ];
n   = [ NSNumber numberWithFloat: 10 ];

[ fmt setFormatterBehavior: NSNumberFormatterBehavior10_4 ];
[ fmt setCurrencySymbol: @"$" ];
[ fmt setNumberStyle: NSNumberFormatterCurrencyStyle ];

 // NSLog( @"%@", [ fmt stringFromNumber: n ];

[ fmt release ];

使用

SumCurrency.text = [ fmt stringFromNumber: n ];

你完成了它

答案 2 :(得分:1)

请问并回答此问题的人请注意。

你说,

[numberFormatter stringFromNumber:[NSNumber numberWithInt:currency]];

但我想如果你使用类的对象,比如NSNumber,那么你可能想要放

[numberFormatter stringFromNumber:(NSNumber *) currency]];

看看我想说什么?

相关问题