项目作者: nefe

项目描述 :
🚀1K tiny & fast lib for doing addition, subtraction, multiplication and division operations precisely
高级语言: TypeScript
项目地址: git://github.com/nefe/number-precision.git
创建时间: 2017-08-21T09:03:31Z
项目社区:https://github.com/nefe/number-precision

开源协议:

下载


number-precision npm version Build Status codecov

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

Why

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

Install

  1. npm install number-precision --save

Methods

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

Usage

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

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. NP.enableBoundaryChecking(false); // default param is true

License

MIT