字符串到不同区域的双精度转换为零 Swift

String to Double conversion nil in different region Swift

有一个文本字段

@IBOutlet weak var txt: UITextField!

当我尝试将 txt 的值转换为 Double 时,它​​在美国地区运行良好。

例如

let magicNumber = Double(txt.text ?? "0.0")

如果我输入 12 UITextField,那么 12 分配给 magicNumber

然后我把地区改成了德国

let magicNumber = Double(txt.text ?? "0.0")

如果我键入 12,8 UITextField,则 magicNumber 为 nil。

我需要一个正确的双精度值,例如:12.8

我怎样才能做到这一点?请给我建议正确的方法。

小心处理本地化数字字符串

let inputString = "12,8" 
let formatter = NumberFormatter()
formatter.locale = Locale.current // Locale(identifier: "de")
let number = formatter.number(from: inputString) 
print(number) // 12.8