1.0.2 • Published 7 years ago

qc-to_num v1.0.2

Weekly downloads
1
License
ISC
Repository
github
Last release
7 years ago

qc-to_num

Build Status Coverage Status License Downloads

npm badge

A simple JavaScript utility to convert various values to a number.

What it does that parseFloat doesn't

  • Allow a default value to be set instead of returning NaN.
  • Convert '-0' to 0 instead of -0.
  • Allow an input with a valueOf function to supply the convertible value.

What it does that new Number doesn't

  • Won't return a Number instance.
  • Allow a default value to be set instead of returning NaN.
  • Convert '-0' to 0 instead of -0.

What it does that Number doesn't

  • Allow a default value to be set instead of returning NaN.
  • Convert '-0' to 0 instead of -0.

Installation

npm install --save qc-to_num

Example Usage

import { toNum, toNumOrNull } from 'qc-to_num';

toNum('+3.1459');                            // `3.1459`
toNum('2');                                  // `2`
toNum(2.6);                                  // `2.6`
toNum(1.2);                                  // `1.2`
toNum(1);                                    // `1`
toNum(-1);                                   // `-1`
toNum(-2.6);                                 // `-2.6`
toNum({ valueOf() { return 42; } });         // `42`
toNum({ valueOf() { return '42'; } });       // `42`

toNum(<inconvertible>);                      // The inconvertible input
toNum(<inconvertible>, undefined);           // The inconvertible input
toNum(<inconvertible>, { def: undefined });  // The inconvertible input

toNum(<inconvertible>, null);                // `null`
toNum(<inconvertible>, { def: null });       // `null`
toNumOrNull(<inconvertible>);                // `null`

toNum(<inconvertible>, 0);                   // `0`
toNum(<inconvertible>, { def: 0 });          // `0`

toNum(<inconvertible>, NaN);                 // `NaN`
toNum(<inconvertible>, { def: NaN });        // `NaN`

toNum();                                     // `undefined`
toNumOrNull();                               // `null`

toNum(NaN);                                  // `NaN`
toNum(NaN, null);                            // `null`
toNumOrNull(NaN);                            // `null`

toNum('');                                   // `''`
toNum('', null);                             // `null`
toNumOrNull('');                             // `null`