如何将分隔符后的两位数字转换为字符串?

How to convert Decimal to String with two digits after separator?

这就是我现在所做的:

扩展十进制 {
    var formattedAmount: 字符串 {
        让格式化程序 = NumberFormatter()
        formatter.generatesDecimalNumbers = 真
        formatter.minimumFractionDigits = 2
        formatter.maximumFractionDigits = 2
        return formatter.string(from: self) //不匹配类型
    }
}

但我无法从 Decimal 创建 NSNumber

这应该有效

extension Decimal {
    var formattedAmount: String? {
        let formatter = NumberFormatter()
        formatter.generatesDecimalNumbers = true
        formatter.minimumFractionDigits = 2
        formatter.maximumFractionDigits = 2
        return formatter.string(from: self as NSDecimalNumber)
    }
}

这个:

formatter.string(from: ...) // requires a NSNumber

您可以这样做:

formatter.string(for: self) // which takes Any as argument

或者:

string(from: self as NSDecimalNumber) // cast self to NSDecimalNumber