Использование NSNumberFormatter для форматирования валюты в выходной UILabel - PullRequest
6 голосов
/ 05 марта 2010
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 ]

13 голосов
/ 05 марта 2010

Я получил ответ .. Но для чьей-либо будущей ссылки

-(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];  
}
6 голосов
/ 12 июля 2012
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 ];

и все готово

1 голос
/ 19 июня 2012

Примечание для человека, который задал и ответил на этот вопрос.

Вы сказали,

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

но я думаю, что если вы используете объект класса, такой как NSNumber, то вы можете поставить

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

Видишь, что я пытаюсь сказать?

...