Swift 3 转换或 NumberFormatter

Swift 3 casting or NumberFormatter

使用 NumberFormatter 比简单转换有什么优势吗? 例如下面的示例 1 和 2 似乎都在做同样的工作,但是强制转换似乎更容易阅读,那么为什么我发现的代码示例中经常使用 NumberFormatter?

var displayValue: Double? {
    get {
        if let text = display.text,
        // 1 let value = NumberFormatter().number(from: text)?.doubleValue
        // 2 let value = Double(text)
}

巨大的差异。如果你想要处理什么:

  • 千位分隔符和小数位:一百万在美国通常写作1,000,000,在法国写作1.000.000,在印度写作10,00,000
  • 货币符号:0£100€100
  • 会计风格中的负数,例如-100写成(100)(通常也是红色的)
  • 百分比:5% → 0.05
  • 单词拼写:"one hundred six" → 106

等...然后使用NumberFormatter