所以我有一个只有数字和逗号的字符串。例如“1,233,323.32”(字符串),但我想将其转换为 1233323.32(双精度)。
问问题
95 次
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 回答