В строке только цифры и запятые, как я могу преобразовать это в двойной - PullRequest
0 голосов
/ 28 мая 2019

Итак, у меня есть строка с просто числами и запятыми. например "1 233 323,32" (строка), но я хочу преобразовать его в 1233323,32 (двойное значение).

Ответы [ 3 ]

2 голосов
/ 28 мая 2019

Использование NumberFormatter:

let formatter = NumberFormatter()
formatter.numberStyle = .decimal
let number = formatter.number(from: "1,233,323.32")
0 голосов
/ 25 июля 2019

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: string12)?.doubleValue
newDouble = myDouble ?? 0.0

Этот код работает правильно, только если есть только цифры и запятые.

0 голосов
/ 28 мая 2019

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)! )")

output

true
occurrence of ',': 2
Ans: 1233323.32
...