NSNumberFormatter для отображения пользовательских меток для 10 ^ n (10000 -> 10k) - PullRequest
0 голосов
/ 27 апреля 2010

Мне нужно отобразить числа на оси графика. Значения могут измениться, но я хочу избежать слишком длинных чисел, которые могут испортить читаемость графика. Я думал, что нужно сгруппировать каждые 3 символа и заменить их на K, M и т. Д. (Или пользовательский символ). Так: 1 -> 1, 999 -> 999, 1.000 -> 1k, 1.200 -> 1.2k, 1.280 -> 1.2k, 12.800 -> 12.8k, 999,999 -> 999,9 тыс., 1.000.000 -> 1М, ...

Обратите внимание, что, вероятно, мне нужно будет только форматировать круглые числа (1, 10, 1000, 1500, 2000, 10000, 20000, 30000, 100000, ...). Это возможно с NSNumberFormatter? Я видел, что у него есть метод setFormat, но я не знаю, насколько он настраиваемый.

Я использую NSNumberFormatter, потому что используемый мной объект графика хочет, чтобы он устанавливал формат метки, и я хочу избежать изменения моих данных для установки метки.

Ответы [ 2 ]

2 голосов
/ 11 октября 2015

Вы можете использовать этот код:

let formatter = NSNumberFormatter()
formatter.multiplier = 0.001
formatter.positiveFormat = "#,###k"
formatter.zeroSymbol = "0"
return formatter

Это помогло мне конвертировать валютные значения:

2000 -> 2k
10000 -> 10k
0 голосов
/ 27 апреля 2010

Нет. Самое близкое, что вы можете получить - это научная нотация. Посмотрите здесь , как создать формат для этого. Очевидно, что вы могли бы довольно легко сделать замену k, M и т. Д. Самостоятельно.

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