             stringValue += title!
         }
 
-        let nf = NumberFormatter()
-        nf.locale = locale
-        nf.minimumIntegerDigits = minIntegerDigits
-        nf.maximumFractionDigits = fractionDigits
-        nf.numberStyle = .decimal
-        nf.usesGroupingSeparator = true
-
-        let value = nf.number(from: stringValue)!.doubleValue
+        numberFormatter.minimumIntegerDigits = minIntegerDigits
+        numberFormatter.maximumFractionDigits = fractionDigits
+        numberFormatter.numberStyle = .decimal
+
+        let value = numberFormatter.number(from: stringValue)!.doubleValue
         self.value = (value >= minValue) ? value : minValue
     }
 

     configure the components of the picker view
     */
    func updatedComponentString(value: Double, intDigits: Int, fractionDigits: Int) -> String {
        let nf = NumberFormatter()
        nf.locale = locale
        nf.minimumIntegerDigits = intDigits
        nf.minimumFractionDigits = fractionDigits
        nf.maximumFractionDigits = fractionDigits
        nf.numberStyle = .decimal
        nf.usesGroupingSeparator = true

        let stringValue = nf.string(from: NSNumber(value: value))
        return stringValue ?? nf.string(from: 0)!
    }

    /**

    /// The locale used for numeric presentation. (defaults to current locale)
    public var locale = Locale.current {
        didSet {
            numberFormatter.locale = locale
            updateAppearance(animated: false)
            resize()
        }
