# number-precision

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

Latest version **1.6.0** (published 2022-10-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install number-precision
pnpm add number-precision
yarn add number-precision
bun add number-precision
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.6.0 |
| Published | 2022-10-08 |
| First published | 2017-08-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 43.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 4095 |
| Author | cam song |
| Maintainers | camsong |
| Keywords | number precision, floating problem, rounding error |

## Links

- npm: https://www.npmjs.com/package/number-precision
- Repository: https://github.com/nefe/number-precision
- Issues: https://github.com/nefe/number-precision/issues
- npm.io page: https://npm.io/package/number-precision

## Alternatives

- [@sentry/react-native](https://npm.io/package/@sentry/react-native.md) — 2.6M weekly downloads
- [@ardatan/aggregate-error](https://npm.io/package/@ardatan/aggregate-error.md) — 708.1K weekly downloads
- [custom-error-generator](https://npm.io/package/custom-error-generator.md) — 2.0K weekly downloads
- [@technik-sde/prosemirror-recreate-transform](https://npm.io/package/@technik-sde/prosemirror-recreate-transform.md) — 1.5K weekly downloads
- [@suchipi/error-utils](https://npm.io/package/@suchipi/error-utils.md) — 78 weekly downloads

## Recent versions

- 1.6.0 (latest) — 2022-10-08
- 1.5.2 — 2022-02-16
- 1.5.1 — 2021-08-16
- 1.5.0 — 2020-06-24
- 1.4.0 — 2020-05-26
- 1.3.2 — 2019-10-23
- 1.3.1 — 2019-02-14
- 1.2.1 — 2018-12-27
- 1.2.0 — 2017-12-16
- 1.1.7 — 2017-10-30
- 1.1.6 — 2017-10-29
- 1.1.5 — 2017-10-18
- 1.1.4 — 2017-10-15
- 1.1.3 — 2017-10-11
- 1.1.2 — 2017-10-09
- … 3 more at https://npm.io/package/number-precision/versions

## README

# number-precision [![npm version](https://badge.fury.io/js/number-precision.svg)](http://badge.fury.io/js/number-precision) [![Build Status](https://travis-ci.org/nefe/number-precision.svg)](https://travis-ci.org/nefe/number-precision) [![codecov](https://codecov.io/gh/nefe/number-precision/branch/master/graph/badge.svg)](https://codecov.io/gh/nefe/number-precision)

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

### Why

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

### Install

```
npm install number-precision --save
```

### Methods

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

### Usage

```js
import NP from 'number-precision'
NP.strip(0.09999999999999998); // = 0.1
NP.plus(0.1, 0.2);             // = 0.3, not 0.30000000000000004
NP.plus(2.3, 2.4);             // = 4.7, not 4.699999999999999
NP.minus(1.0, 0.9);            // = 0.1, not 0.09999999999999998
NP.times(3, 0.3);              // = 0.9, not 0.8999999999999999
NP.times(0.362, 100);          // = 36.2, not 36.199999999999996
NP.divide(1.21, 1.1);          // = 1.1, not 1.0999999999999999
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.
```js
NP.enableBoundaryChecking(false); // default param is true
```

### License
MIT

---
_Source: https://npm.io/package/number-precision · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
