Как бы добавить запятые к числу, которое я извлекаю из JSON в swift.
Example
31908551587 to
31,908,551,587
Я так смущен, и я понятия не имею, что делать.
Ответ 1
Вы можете сделать это с помощью NSNumberFormatter
Swift 3
let largeNumber = 31908551587
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
let formattedNumber = numberFormatter.string(from: NSNumber(value:largeNumber))
Swift 2
let largeNumber = 31908551587
let numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
let formattedNumber = numberFormatter.stringFromNumber(largeNumber)
Ответ 2
Развернув на Özgür Ersil ответ, вы можете выделить функциональность с расширением Int:
extension Int {
func withCommas() -> String {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
return numberFormatter.string(from: NSNumber(value:self))!
}
}
Затем используйте код:
largeNumber.withCommas()
Ответ 3
Также, на вопрос Хуана Фран Хименеса, я бы порекомендовал помещать форматировщик в одноэлементный, так как создание экземпляра форматирования обычно является относительно дорогостоящей операцией. (Это может повлиять на производительность, если вы форматируете на ходу, как пишет пользователь.)
extension Int {
private static var commaFormatter: NumberFormatter = {
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
return formatter
}()
internal var commaRepresentation: String {
return Int.commaFormatter.string(from: NSNumber(value: self)) ?? ""
}
}