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
。
使用 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
。