1.0.2 • Published 11 months ago

num-ops v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

num-ops

Our library provides a comprehensive solution for performing precise mathematical operations in JavaScript. It ensures accuracy and reliability and offers the flexibility to convert results from a number to a string data type to avoid rounding errors.

Need

To avoid floating-point and rounding errors in JS

  5.33 + 5.2 === 10.530000000000001                              //should be 10.53
  0.396951913104453 + 0.29443589412502646 === 0.6913878072294795 //should be 0.69138780722947946
  8.13 - 5.75 === 2.380000000000001                              //should be 2.38
  8.38 * 0.3 === 2.5140000000000002                              //should be 2.514
  99.27 / 3 === 33.089999999999996                               //should be 33.09

Installation

Install num-ops with npm globally

  npm install -g num-ops 

Install num-ops with npm as dev dependency

  npm install -D num-ops 

Methods

  ops.add(num1, num2)       //perform accurate addition of two numbers
  ops.subtract(num1, num2)  //perform accurate subtraction of two numbers
  ops.multiply(num1, num2)  //perform accurate multiplication of two numbers
  ops.divide(num1, num2)    //perform accurate division of two numbers

Usage/Examples

import ops from 'num-ops'

ops.add(5.33, 5.2) // = 10.53, not 10.530000000000001
ops.subtract(8.13, 5.75) // = 2.38, not 2.380000000000001
ops.multiply(8.38, 0.3) // = 2.514, not 2.5140000000000002
ops.divide(99.27, 3) // = 33.09, not 33.089999999999996

To mitigate the effects of rounding errors, it is recommended to convert the numerical answer to a string format. This can be achieved by passing the value of 2 as a parameter when calling the relevant method. By doing so, the numerical value will be represented as a string, thereby avoiding any potential inaccuracies that may result from rounding.

ops.add(0.396951913104453, 0.29443589412502646) // = 0.6913878072294795, not 0.69138780722947946
ops.add(0.396951913104453, 0.29443589412502646, 2) // = '0.69138780722947946'

License

MIT

1.0.2

11 months ago

1.0.1

12 months ago

1.0.0

12 months ago