Проблема в том, что вы используете NumberFormatter
с numberStyle
из currency
для преобразования строки, содержащей обычное число - "552" - которая не является строкой валюты. Это не работает.
Вы должны использовать стиль decimal
для преобразования строки в число. После этого вы можете использовать стиль currency
для преобразования числа обратно в строку.
let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "de_DE")
// string to number
formatter.numberStyle = .decimal
if let n = formatter.number(from: "552") {
print(n) // prints "552"
// number to string (formatted as currency)
formatter.numberStyle = .currency
if let s = formatter.string(from: n) {
print(s) // prints "552,00 €"
}
}