如何将Decimal转换为分隔符后两位数的string?

这就是我现在所做的:

扩展十进制{
     var formattedAmount:String {
        让formatter = NumberFormatter()
         formatter.generatesDecimalNumbers = true
         formatter.minimumFractionDigits = 2
         formatter.maximumFractionDigits = 2
        返回formatter.string(from:self)//不匹配types
     }
 }

但我不能从Decimal创buildNSNumber

这个:

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

你可以这样做:

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

要么:

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

这应该工作

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