Come aggiungerei virgole a un numero che sto recuperando da un JSON in swift.come aggiungere virgole a un numero in swift?
Example
31908551587 to
31,908,551,587
Sono così confuso e non ho idea di cosa fare.
Come aggiungerei virgole a un numero che sto recuperando da un JSON in swift.come aggiungere virgole a un numero in swift?
Example
31908551587 to
31,908,551,587
Sono così confuso e non ho idea di cosa fare.
È possibile farlo con 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)
Ampliando la risposta di Özgür Ersil, è possibile isolare la funzionalità con un'extesion Int:
extension Int {
func withCommas() -> String {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
return numberFormatter.string(from: NSNumber(value:self))!
}
}
Per poi utilizzare sul vostro codice come:
largeNumber.withCommas()
espansione anche sulla risposta di Juan Fran Jimenez, mi sento di raccomandare di mettere il formattatore in un Singleton, dal momento che istanziare un formattatore di solito è un'operazione relativamente costosa. (Potrebbe influire sulle prestazioni se si sta formattando mentre l'utente scrive.)
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)) ?? ""
}
}
grazie mille ha funzionato! –
c'è un modo per fare come questo '31, 90,85,51,587 'usando NumberFormatter? –
@SanketBhavsar non penso così [check] (https://developer.apple.com/reference/foundation/numberformatter.style) –