I use NSNumberFormatter. It looks like this:

let formatter = NumberFormatter() formatter.locale = Locale.current formatter.numberStyle = .decimal formatter.minimumSignificantDigits = 10 if let text = textField.text, let number = formatter.number(from: text) { year = number.doubleValue textField.text = formatter.string(from: NSDecimalNumber(value: year)) yearLabel.text = formatter.string(from: NSDecimalNumber(value: year).multiplying(by: 1)) 

When you type in the text field, for example, the number "15" displays "15.00000000", and when you enter "5.085", "5.085000000" is displayed.

How can I reduce the display of characters in the textField only to those entered by the user?

  • I would like to leave the line with the formatter over the textField ... - Ivan Kisin
  • Well, as an option, delete all zeros at the end of the line. - Vitali Eller

1 answer 1

One of the options:

 let number = 123.23123 print(String(format: "%.2f", number)) -> 123.23 print(String(format: "%.3f", number)) -> 123.231