How to get value as number from react-number-format library?

Viewed 4317

I am using react-number-format library to format input the user gives. But for some reason, when I save the data, the input is being saved as string and not number. Is this default behaviour? If yes, how can I change it to number such that the formatted string is saved as number with all characters(example $, comma etc) being removed?

This is how I am using it. npm package https://www.npmjs.com/package/react-number-format

               <NumberFormat
                    thousandSeparator={true}
                    prefix={"$"}
                    decimalScale={2}
                    fixedDecimalScale
                    disabled={isDisabled}
                 />
1 Answers

You can use react-number-format's onValueChange prop to get the floatValue which is of type number.

It can be used like so:

  <NumberFormat
    {...someProps}
    onValueChange={(values) => {
      const {formattedValue, value, floatValue} = values;
      // do something with floatValue
    }}
  />

From the docs:

formattedValue: '$23,234,235.56', //value after applying formatting

value: '23234235.56', //non formatted value as numeric string 23234235.56, if you are setting this value to state make sure to pass isNumericString prop to true

floatValue: 23234235.56 //floating point representation. For big numbers it can have exponential syntax

See https://www.npmjs.com/package/react-number-format#values-object for more information.

Related