let double = 1.5
let string = double.description
cập nhật Xcode 7.1 • Swift 2.1:
Bây giờ Double cũng có thể chuyển đổi thành Chuỗi để bạn có thể đơn giản sử dụng nó như bạn muốn:
let double = 1.5
let doubleString = String(double) // "1.5"
Swift 3 trở lên, chúng tôi có thể mở rộng LosslessStringConvertible
và làm cho nó chung chung
Xcode 11.3 • Swift 5.1 trở lên
extension LosslessStringConvertible {
var string: String { .init(self) }
}
let double = 1.5
let string = double.string // "1.5"
Đối với một số phân số cố định, chúng tôi có thể mở rộng FloatingPoint
giao thức:
extension FloatingPoint {
func fixedFraction(digits: Int) -> String {
return String(format: "%.*f", digits, self as! CVarArg)
}
}
Nếu bạn cần kiểm soát nhiều hơn đối với định dạng số của mình (chữ số phân số tối thiểu và tối đa và chế độ làm tròn), bạn có thể sử dụng 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)"