import Foundation extension Int { func formattedAsAbbreviation() -> String { let num = fabs(Double(self)) guard num >= 1000.0 else { return String(self) } let exp = Int(log10(num) / 3.0) let units = ["K", "M", "B", "T", "X"] let unit = units[exp - 1] let formatter = NumberFormatter() formatter.positiveSuffix = unit formatter.negativeSuffix = unit formatter.allowsFloats = true formatter.minimumIntegerDigits = 1 formatter.minimumFractionDigits = 0 formatter.maximumFractionDigits = 1 let roundedNum = round(10 * num / pow(1000.0, Double(exp))) / 10 return formatter.string(from: NSNumber(value: roundedNum))! } }