所以我有一个只包含数字和逗号的字符串。例如“ 1,233,323.32”(String),但我想将其转换为1233323.32(double)。
答案 0 :(得分:3)
使用NumberFormatter
:
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
let number = formatter.number(from: "1,233,323.32")
答案 1 :(得分:0)
swift 4.x:
这是您采用人工方法的解决方案
var a = "1,233,323.32"
print(a.contains(","))
检查“,”在一个字符串中出现了多少次,如下所示:
print("occurrence of ',': \(a.characters.filter {$0 == ","}.count)")
如果','在字符串中出现2次,然后使用循环从字符串2time中删除',',如下所示
for _ in 1...(a.characters.filter {$0 == ","}.count) {
a.remove(at: a.index(of: ",")!)
}
print("Ans: \( Double(a)! )")
输出
true
occurrence of ',': 2
Ans: 1233323.32
答案 2 :(得分:-1)
迅速4: 因此,基本上我们有一个带逗号的字符串,我们只是删除了字符串中的所有逗号,然后使用NumberFormatter将其转换为双精度型。
var newDouble = 0.0
var string = ""
string = textField.text?.replacingOccurrences(of: ",", with: "", options: NSString.CompareOptions.literal, range: nil) ?? ""
let myDouble = NumberFormatter().number(from: string12)?.doubleValue
newDouble = myDouble ?? 0.0
仅当有数字和逗号时,此代码才能正常工作。