В моем приложении у меня есть 5 uitextfields. Мои предназначенные пользователи - арабские, поэтому, когда они используют мое приложение, они либо вставляют номер на английском, либо на арабском языке.Как преобразовать арабские цифры в английские номера в swift?
Приложение прекрасно работает с английскими номерами. Однако, когда я запускаю его и вставляю числа на арабском языке, приложение имеет дело с текстовыми полями, как будто все они пусты, и дает ответ как 0
Как я могу убедиться, что текстовые поля не являются нил И двойной, без игнорируя арабские цифры?
Это код внутри функции «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)")
Используйте словарь, в котором он находится, являются арабскими цифрами, а значения - английскими. – Dasem
Инициализатор 'Double' очень упрощен. Для такого рода сложного поведения вы захотите использовать «NumberFormatter» https://developer.apple.com/reference/foundation/numberformatter – Alexander
«Арабские цифры» - это десятичная система, которую мы используем каждый день. Возможно, вы имели в виду «преобразование арабских строк в десятичные числа»? И можете ли вы предоставить пример ввода и вывода? –