在Swift3中使用逗号对数字运行操作

时间:2017-03-11 22:28:39

标签: swift

如果我有一个超过1,000的数字,所以它中有一个逗号,我怎么能去掉逗号,或者把这个数字转换为Double,这样我就可以对它运行数学运算?< / p>

现在,我有以下代码:

let oldBFTally: Double = Double(plBFTally.text!)!
let newBFTally: Double = round(1000 * (rawValue + oldBFTally) / 1000)

这段代码效果很好,只要数字小于1000.但是,由于我将数字格式化为文本,因此它有逗号(即:1,234.56),每当我尝试运行第一行时,它错误,说:“致命错误:在展开可选值时意外发现nil”。

我可以做些什么来解决这个问题?

2 个答案:

答案 0 :(得分:1)

  

但是,因为我将数字格式化为文本,所以它有逗号(即:1,234.56)

你试图以错误的方式解决问题。如果您首先生成此字符串,那么如果您想对数字执行数学运算,则不应将其显示为UI中的字符串,然后尝试从UI向后返回到数字。这会误导您的表示层作为您的数据模型。

不要试图在UI之间来回移动,而是使用从中生成字符串的原始值。

答案 1 :(得分:1)

@Jim是对的;您的文本字段应该只包含内部变量的文本表示,因此您不需要转换回double,但作为参考,您可以使用NumberFormatter

import Foundation

let formatter = NumberFormatter()

formatter.numberStyle = .decimal

if let number = formattter.number(from:"10,000") {
    print(number.doubleValue)
}