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

﹥>﹥吖頭↗ 提交于 2019-12-02 08:44:38

问题


This is what I do now:

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

but I cannot create NSNumber from Decimal.


回答1:


This should work

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



回答2:


This:

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

You can either do this:

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

Or:

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


来源:https://stackoverflow.com/questions/46933209/how-to-convert-decimal-to-string-with-two-digits-after-separator

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!