Как можно преобразовать десятичное число с запятой в десятичное (точка) в SwiftUI? - PullRequest
0 голосов
/ 10 марта 2020

Каким образом textField, в котором вставлена ​​запятая, может быть отформатирован, чтобы вставленное десятичное значение, например, 10,05 $, можно было преобразовать в десятичное (точка) 10,05 $?

private static let Intrest = "Intrest"
private static let Repayment = "Repayment"



var loan: Double {
    let intrest = Double (Intrest)
    let repayment = Double (Repayment)

    let Loan = Intrest + Repayment

    return Loan
}



var body: some View {
     VStack{
        HStack{
           Text ("Repayment %")
           Spacer()
           TextField("2 %", text: $Repayment)
                .keyboardType(.decimalPad)
            }
      VStack{
         HStack{
            Text ("Loan / month")
            }
            TextField("2 %", text: $Loan)
                .keyboardType(.decimalPad)
            }
}

Проблема возникает только потому, что во многих странах в основном используется запятая, что нарушает расчет.

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Я предлагаю вам прочитать Текстовое поле не обновляется и использовать настраиваемое связывание строк с двойной задней памятью.

Специально прочитайте Обновление там: -)

Полный пример использования пользовательского связывания строк с двойным числом бэкэнда здесь https://gist.github.com/op183/24607b6309f7d1ea8f3aaf02d17e4ed3

0 голосов
/ 10 марта 2020

Вы должны убедиться, что конвертируете строку в двойную с точкой, а не через запятую.

Это должно помочь. Swift детская площадка - Как преобразовать строку с запятой в строку с десятичной дробью

...