Число из plist отображается с двумя десятичными знаками с использованием NSNumberFormatter

Я показываю номер из plist в одном из моих ярлыков (если ключ существует). Если я набрал 98,90 в plist, он иногда менял число на, например, 98,9000000000001. Итак, я хочу отображать числа с двумя десятичными знаками, и я пытаюсь добавить NSNumberFormatter, чтобы выполнить эту работу. Но я не могу заставить его работать, мне нужна помощь, чтобы сделать это правильно. Это моя попытка:

 NSString *theString = @"";
 if ([selectedObject valueForKey:@"75 cl"] != nil) {

     NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
     [formatter setPositiveFormat:@"###.##"];

     theString = [NSString stringWithFormat:@"75 cl € %@", [formatter stringFromNumber:[selectedObject valueForKey:@"75 cl"]]];
 }
 sevenfiveLabel.text = theString;

person ingenspor    schedule 20.07.2012    source источник


Ответы (2)


Вам не нужно использовать NSNumberFormatter:

NSString *theString = @"";
NSNumber *theNumber = [selectedObject valueForKey:@"75 cl"];

if (theNumber) {
    theString = [NSString stringWithFormat:@"75 cl € %.2f", [theNumber floatValue]];
}

sevenfiveLabel.text = theString;
person Ian L    schedule 20.07.2012
comment
о! Ага! Извини, я виноват :) - person Ian L; 21.07.2012

# в строке формата представляет необязательную цифру: средство форматирования поместит туда цифру только в случае необходимости. Если вы хотите заставить его дополнить строку, вам нужно использовать 0 в строке формата.

Format   Result
###.##   98.9
##0.00   98.90
000.00   098.90
person rob mayoff    schedule 20.07.2012