如何在swift中添加逗号到一个数字?

我如何将逗号添加到我从一个JSON快速检索的数字。

Example 31908551587 to 31,908,551,587 

我很困惑,我不知道该怎么做。

你可以用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) 

在ÖzgürErsil的答案上​​进一步扩展,你可以将这个function与Ex:

 extension Int { func withCommas() -> String { let numberFormatter = NumberFormatter() numberFormatter.numberStyle = NumberFormatter.Style.decimal return numberFormatter.string(from: NSNumber(value:self))! } } 

然后在你的代码上使用:

 largeNumber.withCommas() 

同时扩展Juan Fran Jimenez的回答,我会build议将格式化程序放入单例中,因为实例化格式化程序通常是一个相对昂贵的操作。 (如果您按照用户的要求进行格式化,则可能会影响性能。)

 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)) ?? "" } }