Как преобразовать число NSString в трехзначное процентное значение? - PullRequest
1 голос
/ 06 апреля 2011

У меня есть NSString со следующим номером 0,871, и я пытаюсь преобразовать это в отображение примерно так 87,1%

Я пытался использовать NSNumberFormatter, чтобы получить этот результат, но я не могу его получитьотобразить 3 цифры.Как лучше всего достичь этого результата?Спасибо.

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterPercentStyle];
NSNumber *number = [formatter numberFromString:inputString];
[formatter release];

Ответы [ 3 ]

4 голосов
/ 06 апреля 2011
NSString * str = @"0.863";
NSString * newStr = [NSString stringWithFormat:@"%.1f%%", [str floatValue]*100];
2 голосов
/ 06 апреля 2011

Если вы пытаетесь преобразовать строку в число, отформатируйте число:

NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:inputString];

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterPercentStyle];
NSString *formattedString = [formatter stringFromNumber:number];
[formatter release];

Если вы просто хотите превратить «0,871» в число 87,1:

NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:inputString];
NSDecimalNumber *percentNumber = [number decimalNumberByMultiplyingByPowerOf10:2];
1 голос
/ 08 апреля 2012

Просто используйте setMinimumFractionDigits:

NSNumber *myNumber = [NSNumber numberWithFloat:0.871];

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterPercentStyle];
[formatter setMinimumFractionDigits:1];

NSLog(@"%@", [formatter stringFromNumber:myNumber]);     // 87.1%

это также гарантирует, что проценты отформатированы соответствующим образом для локали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...