number-precision

1K tiny & fast lib for doing addition, subtraction, multiplication and divi...

README

number-precision npm version Build Status codecov


Perform addition, subtraction, multiplication and division operations precisely using javascript

Why


  1. ``` js
  2. 0.1 + 0.2 = 0.30000000000000004
  3. 1.0 - 0.9 = 0.09999999999999998
  4. 0.105.toFixed(2) = 0.1 // not 0.11
  5. ```

Install


  1. ```
  2. npm install number-precision --save
  3. ```

Methods


  1. ``` js
  2. NP.strip(num)         // strip a number to nearest right number
  3. NP.plus(num1, num2, num3, ...)   // addition, num + num2 + num3, two numbers is required at least.
  4. NP.minus(num1, num2, num3, ...)  // subtraction, num1 - num2 - num3
  5. NP.times(num1, num2, num3, ...)  // multiplication, num1 * num2 * num3
  6. NP.divide(num1, num2, num3, ...) // division, num1 / num2 / num3
  7. NP.round(num, ratio)  // round a number based on ratio
  8. ```

Usage


  1. ``` js
  2. import NP from 'number-precision'
  3. NP.strip(0.09999999999999998); // = 0.1
  4. NP.plus(0.1, 0.2);             // = 0.3, not 0.30000000000000004
  5. NP.plus(2.3, 2.4);             // = 4.7, not 4.699999999999999
  6. NP.minus(1.0, 0.9);            // = 0.1, not 0.09999999999999998
  7. NP.times(3, 0.3);              // = 0.9, not 0.8999999999999999
  8. NP.times(0.362, 100);          // = 36.2, not 36.199999999999996
  9. NP.divide(1.21, 1.1);          // = 1.1, not 1.0999999999999999
  10. NP.round(0.105, 2);            // = 0.11, not 0.1
  11. ```

PS: If you want to get rid of XXX is beyond boundary when transfer to integer, the results may not be accurate, use this at the beginning of your app to turn off boundary checking.
  1. ``` js
  2. NP.enableBoundaryChecking(false); // default param is true
  3. ```

License

MIT