Ответ 1
Предполагая, что число находится в диапазоне 0-1, так как это процент
поэтому 0.905 доставит вам 90,5%.
Я не понимаю, как работает NSNumberFormatterPercentStyle!
Пример:
NSNumber *number = [NSNumber numberWithFloat:90.5];
NSNumberFormatter *percentageFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[percentageFormatter setNumberStyle:NSNumberFormatterPercentStyle];
NSString *strNumber = [percentageFormatter stringFromNumber:numbericString];
NSLog (strNumber); // Output: 9,050%
Я просто хочу показать "90,5%" (в отношении NSLocal). Что такое NSNumberFormatterPercentStyle с 90,5 и почему? И, как я могу получить желаемый результат??
Предполагая, что число находится в диапазоне 0-1, так как это процент
поэтому 0.905 доставит вам 90,5%.
Просто установите множитель в 1
, если ваши номера уже в процентах.
numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setMaximumFractionDigits:0];
[numberFormatter setMultiplier:@1];
Давайте начнем с основ:
"Процент" означает "из 100", поэтому 12% означает 12/100. Вы не "умножаетесь на 100", чтобы получить процентное значение, вы умножаетесь на 100% (что то же самое, что умножать на 1, что то же самое, что ничего не делать).
Не все используют базу 10 (хотя большинство "современных" языков), и не каждый использует 100 в качестве знаменателя. См. Например, perMillSymbol (или kCFNumberFormatterPerMillSymbol). Там нет формата "permill", но возможно, что он автоматически используется для локалей, которые не используют проценты.
См. также: PER MILLE SIGN (‰) и PER TEN THOUSAND SIGN (‱).
Я не знаю этого языка, но на основе вашего образца кода и вывода, я бы предположил, что процентный коэффициент форматирования умножается на 100, а затем помещает знак%, так что 1 становится 100%. Вы хотите использовать 0,905, который должен стать 90,5%.
Форматировщик "процентного стиля" ожидает число 0.905
, если вы хотите в итоге 90.5%
. Он интерпретирует 90.5
как из 1, поэтому он равен 9050% от 1.
Pulkit Goyal Answer is correct... установка множителя в 1 делает "50" в "50%"