let double = 1.5
let string = double.description
mettre à jour Xcode 7.1 • Swift 2.1:
Maintenant, Double est également convertible en String, vous pouvez donc simplement l'utiliser comme vous le souhaitez:
let double = 1.5
let doubleString = String(double) // "1.5"
Swift 3 ou version ultérieure, nous pouvons l'étendre LosslessStringConvertible
et le rendre générique
Xcode 11.3 • Swift 5.1 ou version ultérieure
extension LosslessStringConvertible {
var string: String { .init(self) }
}
let double = 1.5
let string = double.string // "1.5"
Pour un nombre fixe de chiffres de fraction, nous pouvons étendre le FloatingPoint
protocole:
extension FloatingPoint {
func fixedFraction(digits: Int) -> String {
return String(format: "%.*f", digits, self as! CVarArg)
}
}
Si vous avez besoin de plus de contrôle sur votre format de nombre (chiffres de fraction minimum et maximum et mode d'arrondi), vous pouvez utiliser 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)"