如何在 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