Jak dodać przecinki do numeru, który pobieram z JSON-a w szybkim tempie.Jak dodać przecinki do numeru w szybkim tempie?
Example
31908551587 to
31,908,551,587
Jestem taki zdezorientowany i nie mam pojęcia, co robić.
Jak dodać przecinki do numeru, który pobieram z JSON-a w szybkim tempie.Jak dodać przecinki do numeru w szybkim tempie?
Example
31908551587 to
31,908,551,587
Jestem taki zdezorientowany i nie mam pojęcia, co robić.
Można to zrobić z 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)
Rozwijając na odpowiedź ozgur Ersil, można wyizolować funkcjonalność z extesion do Int:
extension Int {
func withCommas() -> String {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
return numberFormatter.string(from: NSNumber(value:self))!
}
}
Aby następnie wykorzystać na kodzie jak:
largeNumber.withCommas()
rozszerza także na odpowiedź Juan Fran Jiménez, polecam umieszczenie formatowania w Singleton, od instancji do formatowania jest zazwyczaj stosunkowo kosztowna operacja. (Może to wpłynąć na wydajność, jeśli formatujesz w trakcie pisania, jak pisze użytkownik.)
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)) ?? ""
}
}
Dziękuję bardzo, że zadziałało! –
jest jakikolwiek sposób, aby zrobić, jak to "31, 90,85,51,587" za pomocą NumberFormatter? –
@SanketBhavsar Nie sądzę, że tak [sprawdź] (https://developer.apple.com/reference/foundation/numberformatter.style) –