NSNumberFormatter сохраняет десятичный разделитель, даже если десятичные дроби отсутствуют

У меня есть UILabel и его форматер:

 NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];

[formatter setGroupingSeparator:@"."];
[formatter setGroupingSize:3];
[formatter setAlwaysShowsDecimalSeparator:NO];
[formatter setUsesGroupingSeparator:YES];
[formatter setDecimalSeparator:@","];

NSString *formattedString = [formatter stringFromNumber:[NSNumber numberWithFloat:12.]]];

Так что мой formattedString возвращает 12

Что делать, если я хочу оставить запятую, когда нет десятичной дроби? Так что мой UIlabel печатает "12."?

1 ответ

Если вы хотите увидеть запятую, когда нет десятичной дроби, установите alwaysShowsDecimalSeparator соответственно

[formatter setAlwaysShowsDecimalSeparator:YES];

Таким образом, ваш UILabel скажет "12" (не "12").

Другие вопросы по тегам