Разделитель триад в любых числовых значениях
Без долгих вступлений и СЕО-якорей — сразу к делу.
Для того чтобы добавить разделитель триад к любым числовым значениям нужно написать два расширения — одно для класса Formatter, а второе для числового типа, например Int или UInt32.
// // proSwift.ru // extension Formatter { static let withSeparator: NumberFormatter = { let formatter = NumberFormatter() formatter.groupingSeparator = " " formatter.numberStyle = .decimal return formatter }() } extension UInt32 { var formattedWithSeparator: String { return Formatter.withSeparator.string(for: self) ?? "" } }
Теперь добавим проверочный код, чтобы посмотреть результат:
// // proSwift.ru // for i in 1...100 { let n = arc4random_uniform(999999) print("Шаг \(i): \(n.formattedWithSeparator)") }
И посмотрим на результат в консоль:
Шаг 1: 296 823 Шаг 2: 763 911 Шаг 3: 286 234 Шаг 4: 485 144 Шаг 5: 298 800 Шаг 6: 23 355 Шаг 7: 722 522 Шаг 8: 550 207 ...
Соответственно, вместо пробела можно использовать любой разделитель, например апостроф. Его просто нужно указать в расширении класса Formatter.
... Шаг 34: 66'205 Шаг 35: 976'677 Шаг 36: 144'400 Шаг 37: 553'068 Шаг 38: 303'803 Шаг 39: 499'897 Шаг 40: 166'388 Шаг 41: 986'202 ...
Добавить комментарий