Подтвердить что ты не робот

Номер форматирования в процентах

Я не понимаю, как работает 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 и почему? И, как я могу получить желаемый результат??

4b9b3361

Ответ 1

Предполагая, что число находится в диапазоне 0-1, так как это процент

поэтому 0.905 доставит вам 90,5%.

Ответ 2

Просто установите множитель в 1, если ваши номера уже в процентах.

numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setMaximumFractionDigits:0];
[numberFormatter setMultiplier:@1];

Ответ 3

Давайте начнем с основ:

  • 1 = 100%
  • 1/2 = 0,5 = 50%

"Процент" означает "из 100", поэтому 12% означает 12/100. Вы не "умножаетесь на 100", чтобы получить процентное значение, вы умножаетесь на 100% (что то же самое, что умножать на 1, что то же самое, что ничего не делать).

Не все используют базу 10 (хотя большинство "современных" языков), и не каждый использует 100 в качестве знаменателя. См. Например, perMillSymbol (или kCFNumberFormatterPerMillSymbol). Там нет формата "permill", но возможно, что он автоматически используется для локалей, которые не используют проценты.

См. также: PER MILLE SIGN (‰) и PER TEN THOUSAND SIGN (‱).

Ответ 4

Я не знаю этого языка, но на основе вашего образца кода и вывода, я бы предположил, что процентный коэффициент форматирования умножается на 100, а затем помещает знак%, так что 1 становится 100%. Вы хотите использовать 0,905, который должен стать 90,5%.

Ответ 5

Форматировщик "процентного стиля" ожидает число 0.905, если вы хотите в итоге 90.5%. Он интерпретирует 90.5 как из 1, поэтому он равен 9050% от 1.

Ответ 6

Pulkit Goyal Answer is correct... установка множителя в 1 делает "50" в "50%"