let double = 1.5
let string = double.description
Update Xcode 7.1 • Swift 2.1:
Jetzt kann Double auch in String konvertiert werden, sodass Sie es einfach nach Ihren Wünschen verwenden können:
let double = 1.5
let doubleString = String(double) // "1.5"
Swift 3 oder höher wir erweitern LosslessStringConvertible
und generisch machen
Xcode 11.3 • Swift 5.1 oder höher
extension LosslessStringConvertible {
var string: String { .init(self) }
}
let double = 1.5
let string = double.string // "1.5"
Für eine feste Anzahl von Bruchstellen können wir das FloatingPoint
Protokoll erweitern:
extension FloatingPoint {
func fixedFraction(digits: Int) -> String {
return String(format: "%.*f", digits, self as! CVarArg)
}
}
Wenn Sie mehr Kontrolle über Ihr Zahlenformat benötigen (minimale und maximale Bruchstellen und Rundungsmodus), können Sie NumberFormatter verwenden:
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)"