2016-11-02 2 views
0

Проблема: TextField с «числом», содержащим десятичный разделитель (запятая в моем случае), как я могу изменить это на десятичный разделитель, который Xcode поймет (.) , а наоборот - отобразить результат с помощью локального десятичного разделителя?NumberFormatter, NSLocale, Xcode, iOS, Swift 3.0

Ok ... на полпути ...

let label = Input.text 
    let formatter = NumberFormatter() 
    let maybeNumber = formatter.number(from: label!) 
    if maybeNumber != nil { 
     Output.text = String(describing: maybeNumber!) 
     } 
+0

вы смотрели в '' собственность decimalSeparator' NumberFormatter' (в.)? Вы можете установить его в (.) Или (,), если это поможет. Более подробная информация или примеры кода могут помочь нам выяснить, что именно вы пытаетесь сделать. –

+0

http://stackoverflow.com/a/30154625/2303865 –

+0

Ok .... половина пути там ... let label = Input.text let formatter = NumberFormatter() let maybeNumber = formatter.number (from: label !) , если, возможно, Number! = Nil { Output.text = String (описывающий: MaybeNumber!) } } –

ответ

0

Я не уверен, если это то, что вы имеете в виду, но вы можете изменить запятую в textField.text к (.) По используя этот кусок кода:

textField.text = textField.text.replacingOccurrences(of: ",", with: ".", options: NSString.CompareOptions.literal, range: nil) 

Это находит запятые в вашем TextField и заменяет их с

+0

Спасибо Майкл и Мортен; То, что я пытаюсь сделать, - это ввести десятичный номер с помощью Local Decimal Pad («22,4»). Затем измените это значение на 22.4 для дальнейших вычислений ..... затем снова отобразите результат в локальном десятичном формате. –