【问题标题】:How to convert Decimal to String with two digits after separator?如何将十进制转换为分隔符后两位数的字符串?
【发布时间】:2018-04-06 14:09:34
【问题描述】:

这就是我现在所做的:

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

但我无法从Decimal 创建NSNumber。

【问题讨论】:

标签: ios swift string decimal number-formatting


【解决方案1】:

这个:

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

您可以这样做:

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

或者:

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

【讨论】:

  • 语法在 Swift 3 和 Swift 4 之间没有改变。
【解决方案2】:

这应该可以工作

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

【讨论】:

  • Decimal 转 String 时无需使用 generateDecimalNumbers 属性。在字符串转十进制的情况下使用它
猜你喜欢
  • 1970-01-01
  • 2015-02-18
  • 2011-10-31
  • 2023-01-26
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多