let double = 1.5
let string = double.description
perbarui Xcode 7.1 • Swift 2.1:
Sekarang Double juga dapat diubah menjadi String sehingga Anda dapat menggunakannya sesuai keinginan:
let double = 1.5
let doubleString = String(double) // "1.5"
Swift 3 atau yang lebih baru dapat kita perpanjang LosslessStringConvertible
dan membuatnya menjadi generik
Xcode 11.3 • Swift 5.1 atau lebih baru
extension LosslessStringConvertible {
var string: String { .init(self) }
}
let double = 1.5
let string = double.string // "1.5"
Untuk sejumlah digit pecahan yang tetap, kami dapat memperluas FloatingPoint
protokol:
extension FloatingPoint {
func fixedFraction(digits: Int) -> String {
return String(format: "%.*f", digits, self as! CVarArg)
}
}
Jika Anda membutuhkan lebih banyak kontrol atas format angka Anda (digit pecahan minimum dan maksimum dan mode pembulatan) Anda dapat menggunakan NumberFormatter:
extension Formatter {
static let number = NumberFormatter()
}
extension FloatingPoint {
func fractionDigits(min: Int = 2, max: Int = 2, roundingMode: NumberFormatter.RoundingMode = .halfEven) -> String {
Formatter.number.minimumFractionDigits = min
Formatter.number.maximumFractionDigits = max
Formatter.number.roundingMode = roundingMode
Formatter.number.numberStyle = .decimal
return Formatter.number.string(for: self) ?? ""
}
}
2.12345.fractionDigits() // "2.12"
2.12345.fractionDigits(min: 3, max: 3, roundingMode: .up) // "2.124"
var b = "\(a)"