如何在 Swift 5 中使 Decimal 符合 LosslessStringConvertible?
How to make Decimal conform LosslessStringConvertible in Swift 5?
我想在 Swift 5.
中将 Decimal 转换为 String
因为我直接试过
String(aDecimalNumber)
然后 Xcode 给出错误信息说:
Decimal needs to conform LosslessStringConvertible
所以我添加了一个扩展名:
extension Decimal: LosslessStringConvertible {
public init?(_ description: String) {
}
}
但是不行。我的理解是将String类型的描述提取为Decimal。但不确定该怎么做?
这是一个可能的实现:
extension Decimal: LosslessStringConvertible {
public init?(_ description: String) {
guard let decimal = Decimal(string: description) else {
return nil
}
self = decimal
}
}
let d: Decimal? = Decimal("1e9") //1000000000
我想在 Swift 5.
中将 Decimal 转换为 String因为我直接试过
String(aDecimalNumber)
然后 Xcode 给出错误信息说:
Decimal needs to conform LosslessStringConvertible
所以我添加了一个扩展名:
extension Decimal: LosslessStringConvertible {
public init?(_ description: String) {
}
}
但是不行。我的理解是将String类型的描述提取为Decimal。但不确定该怎么做?
这是一个可能的实现:
extension Decimal: LosslessStringConvertible {
public init?(_ description: String) {
guard let decimal = Decimal(string: description) else {
return nil
}
self = decimal
}
}
let d: Decimal? = Decimal("1e9") //1000000000