Как обрезать .000 нулей из двойных с NSNumberFormatter - PullRequest
1 голос
/ 15 сентября 2010

Хорошо, так что если у меня есть двойное значение, чтобы начать с того, как мне ограничить его или усечь цифры до 1 dp, поскольку я знаю, что их не нужно просматривать

double a = 1.6;

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:a]];

[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setGeneratesDecimalNumbers:YES];
[numberFormatter setMaximumFractionDigits:1];
[numberFormatter setMinimumFractionDigits:1];
[numberFormatter setAlwaysShowsDecimalSeparator:YES];  

NSLog(@"a raw: %f", a); //outputs 1.600000

myLabel.text = [NSString stringWithFormat:@"%@",numberAsString];

NSLog(@"Formatted a: %@", numberAsString); //outputs 2

[numberFormatter release];

Так что проблема в том, что оно округляетзначение и не оставляет десятичного знака, я пытаюсь вывести его только 1,6 для myLabel.

1 Ответ

1 голос
/ 15 сентября 2010

Я не уверен, но вы можете попробовать с NSString *formatted = [NSString stringWithFormat:@"%.1f", a];, затем использовать форматированный текст метки

...