-3

所以我有一个只有数字和逗号的字符串。例如“1,233,323.32”(字符串),但我想将其转换为 1233323.32(双精度)。

4

3 回答 3

1

使用NumberFormatter

let formatter = NumberFormatter()
formatter.numberStyle = .decimal
let number = formatter.number(from: "1,233,323.32")
于 2019-05-28T20:18:36.267 回答
0

Swift 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: string)?.doubleValue
newDouble = myDouble ?? 0.0

此代码仅在只有数字和逗号时才能正常工作。

于 2019-07-25T02:46:54.660 回答
-1

Swift 4.x:
这是您使用手动方法的解决方案

var a = "1,233,323.32"
print(a.contains(","))

检查“,”在字符串中出现了多少次,如下所示

print("occurrence of ',': \(a.characters.filter {$0 == ","}.count)")

如果“,”在字符串中出现 2 次,则使用循环从字符串 2 次中删除“,”,如下所示

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
于 2019-05-28T20:55:19.437 回答