如何在swift中将阿拉伯数字转换为英文数字?

在我的应用程序中,我有5个uitextfields。 我的目标用户是阿拉伯语用户,因此当他们使用我的应用程序时,他们将插入英文或阿拉伯语的数字。

该应用程序适用于英文数字。 但是,当我运行它并在阿拉伯语中插入数字时,应用程序会处理文本字段,就像它们都是空的一样,并将答案显示为0

如何确保文本字段不是nill和double,而不是忽略阿拉伯数字?

这是“calButton”函数中的代码:

/*let value1 = Double(income.text ?? "") ?? 0 let value2 = Double(salaries.text ?? "") ?? 0 let value3 = Double(tools.text ?? "") ?? 0 let value4 = Double(maintinance.text ?? "") ?? 0 let value5 = Double(otherExpenses.text ?? "") ?? 0 let sum = value1 - ( value2 + value3 + value4 + value5) print("result is: \(sum)")*/ let textFields = [income, salaries, tools, maintinance, otherExpenses] var sum = 0.0 for textField in textFields { if let number = Double((textField?.text!)!) { //checks that it is not nil AND a Double sum += number } } expensesTotal.text = String(sum) // print("result is: \(sum)") 

您需要先将阿拉伯数字字符串转换为英语,然后执行计算部分。

  let numberStr: String = "٨٦٩١٢٨٨١" let formatter: NumberFormatter = NumberFormatter() formatter.locale = NSLocale(localeIdentifier: "EN") as Locale! let final = formatter.number(from: numberStr) let doubleNumber = Double(final!) print("\(doubleNumber)")