{
  "manifest": {
    "name": "decimal.js",
    "description": "An arbitrary-precision Decimal type for JavaScript.",
    "version": "10.4.3",
    "keywords": [
      "arbitrary",
      "precision",
      "arithmetic",
      "big",
      "number",
      "decimal",
      "float",
      "biginteger",
      "bigdecimal",
      "bignumber",
      "bigint",
      "bignum"
    ],
    "repository": {
      "type": "git",
      "url": "https://github.com/MikeMcl/decimal.js.git"
    },
    "main": "decimal",
    "module": "decimal.mjs",
    "browser": "decimal.js",
    "exports": {
      ".": {
        "types": "./decimal.d.ts",
        "import": "./decimal.mjs",
        "require": "./decimal.js"
      },
      "./decimal.mjs": "./decimal.mjs",
      "./decimal.js": "./decimal.js",
      "./package.json": "./package.json",
      "./decimal": {
        "types": "./decimal.d.ts",
        "import": "./decimal.mjs",
        "require": "./decimal.js"
      }
    },
    "author": {
      "name": "Michael Mclaughlin",
      "email": "M8ch88l@gmail.com"
    },
    "license": "MIT",
    "scripts": {
      "test": "node ./test/test.js"
    },
    "types": "decimal.d.ts",
    "files": [
      "decimal.js",
      "decimal.mjs",
      "decimal.d.ts"
    ],
    "_registry": "npm",
    "_loc": "/homez.1033/heliovt/.cache/yarn/v6/npm-decimal-js-10.4.3-1044092884d245d1b7f65725fa4ad4c6f781cc23-integrity/node_modules/decimal.js/package.json",
    "readmeFilename": "README.md",
    "readme": "![decimal.js](https://raw.githubusercontent.com/MikeMcl/decimal.js/gh-pages/decimaljs.png)\n\nAn arbitrary-precision Decimal type for JavaScript.\n\n[![npm version](https://img.shields.io/npm/v/decimal.js.svg)](https://www.npmjs.com/package/decimal.js)\n[![npm downloads](https://img.shields.io/npm/dw/decimal.js)](https://www.npmjs.com/package/decimal.js)\n[![Build Status](https://travis-ci.org/MikeMcl/decimal.js.svg)](https://travis-ci.org/MikeMcl/decimal.js)\n[![CDNJS](https://img.shields.io/cdnjs/v/decimal.js.svg)](https://cdnjs.com/libraries/decimal.js)\n\n<br>\n\n## Features\n\n  - Integers and floats\n  - Simple but full-featured API\n  - Replicates many of the methods of JavaScript's `Number.prototype` and `Math` objects\n  - Also handles hexadecimal, binary and octal values\n  - Faster, smaller, and perhaps easier to use than JavaScript versions of Java's BigDecimal\n  - No dependencies\n  - Wide platform compatibility: uses JavaScript 1.5 (ECMAScript 3) features only\n  - Comprehensive [documentation](https://mikemcl.github.io/decimal.js/) and test set\n  - Used under the hood by [math.js](https://github.com/josdejong/mathjs)\n  - Includes a TypeScript declaration file: *decimal.d.ts*\n\n![API](https://raw.githubusercontent.com/MikeMcl/decimal.js/gh-pages/API.png)\n\nThe library is similar to [bignumber.js](https://github.com/MikeMcl/bignumber.js/), but here\nprecision is specified in terms of significant digits rather than decimal places, and all\ncalculations are rounded to the precision (similar to Python's decimal module) rather than just\nthose involving division.\n\nThis library also adds the trigonometric functions, among others, and supports non-integer powers,\nwhich makes it a significantly larger library than *bignumber.js* and the even smaller\n[big.js](https://github.com/MikeMcl/big.js/).\n\nFor a lighter version of this library without the trigonometric functions see\n[decimal.js-light](https://github.com/MikeMcl/decimal.js-light/).\n\n## Load\n\nThe library is the single JavaScript file *decimal.js* or ES module *decimal.mjs*.\n\nBrowser:\n\n```html\n<script src='path/to/decimal.js'></script>\n\n<script type=\"module\">\n  import Decimal from './path/to/decimal.mjs';\n  ...\n</script>\n```\n\n[Node.js](https://nodejs.org):\n\n```bash\nnpm install decimal.js\n```\n```js\nconst Decimal = require('decimal.js');\n\nimport Decimal from 'decimal.js';\n\nimport {Decimal} from 'decimal.js';\n```\n\n## Use\n\n*In all examples below, semicolons and `toString` calls are not shown.\nIf a commented-out value is in quotes it means `toString` has been called on the preceding expression.*\n\nThe library exports a single constructor function, `Decimal`, which expects a single argument that is a number, string or Decimal instance.\n\n```js\nx = new Decimal(123.4567)\ny = new Decimal('123456.7e-3')\nz = new Decimal(x)\nx.equals(y) && y.equals(z) && x.equals(z)        // true\n```\n\nIf using values with more than a few digits, it is recommended to pass strings rather than numbers to avoid a potential loss of precision.\n\n```js\n// Precision loss from using numeric literals with more than 15 significant digits.\nnew Decimal(1.0000000000000001)         // '1'\nnew Decimal(88259496234518.57)          // '88259496234518.56'\nnew Decimal(99999999999999999999)       // '100000000000000000000'\n\n// Precision loss from using numeric literals outside the range of Number values.\nnew Decimal(2e+308)                     // 'Infinity'\nnew Decimal(1e-324)                     // '0'\n\n// Precision loss from the unexpected result of arithmetic with Number values.\nnew Decimal(0.7 + 0.1)                  // '0.7999999999999999'\n```\n\nAs with JavaScript numbers, strings can contain underscores as separators to improve readability.\n\n```js\nx = new Decimal('2_147_483_647')\n```\n\nString values in binary, hexadecimal or octal notation are also accepted if the appropriate prefix is included.\n\n```js\nx = new Decimal('0xff.f')            // '255.9375'\ny = new Decimal('0b10101100')        // '172'\nz = x.plus(y)                        // '427.9375'\n\nz.toBinary()                         // '0b110101011.1111'\nz.toBinary(13)                       // '0b1.101010111111p+8'\n\n// Using binary exponential notation to create a Decimal with the value of `Number.MAX_VALUE`.\nx = new Decimal('0b1.1111111111111111111111111111111111111111111111111111p+1023')\n// '1.7976931348623157081e+308'\n```\n\nDecimal instances are immutable in the sense that they are not changed by their methods.\n\n```js\n0.3 - 0.1                     // 0.19999999999999998\nx = new Decimal(0.3)\nx.minus(0.1)                  // '0.2'\nx                             // '0.3'\n```\n\nThe methods that return a Decimal can be chained.\n\n```js\nx.dividedBy(y).plus(z).times(9).floor()\nx.times('1.23456780123456789e+9').plus(9876.5432321).dividedBy('4444562598.111772').ceil()\n```\n\nMany method names have a shorter alias.\n\n```js\nx.squareRoot().dividedBy(y).toPower(3).equals(x.sqrt().div(y).pow(3))     // true\nx.comparedTo(y.modulo(z).negated() === x.cmp(y.mod(z).neg())              // true\n```\n\nMost of the methods of JavaScript's `Number.prototype` and `Math` objects are replicated.\n\n```js\nx = new Decimal(255.5)\nx.toExponential(5)                       // '2.55500e+2'\nx.toFixed(5)                             // '255.50000'\nx.toPrecision(5)                         // '255.50'\n\nDecimal.sqrt('6.98372465832e+9823')      // '8.3568682281821340204e+4911'\nDecimal.pow(2, 0.0979843)                // '1.0702770511687781839'\n\n// Using `toFixed()` to avoid exponential notation:\nx = new Decimal('0.0000001')\nx.toString()                             // '1e-7'\nx.toFixed()                              // '0.0000001'\n```\n\nAnd there are `isNaN` and `isFinite` methods, as `NaN` and `Infinity` are valid `Decimal` values.\n\n```js\nx = new Decimal(NaN)                                           // 'NaN'\ny = new Decimal(Infinity)                                      // 'Infinity'\nx.isNaN() && !y.isNaN() && !x.isFinite() && !y.isFinite()      // true\n```\n\nThere is also a `toFraction` method with an optional *maximum denominator* argument.\n\n```js\nz = new Decimal(355)\npi = z.dividedBy(113)        // '3.1415929204'\npi.toFraction()              // [ '7853982301', '2500000000' ]\npi.toFraction(1000)          // [ '355', '113' ]\n```\n\nAll calculations are rounded according to the number of significant digits and rounding mode specified\nby the `precision` and `rounding` properties of the Decimal constructor.\n\nFor advanced usage, multiple Decimal constructors can be created, each with their own independent\nconfiguration which applies to all Decimal numbers created from it.\n\n```js\n// Set the precision and rounding of the default Decimal constructor\nDecimal.set({ precision: 5, rounding: 4 })\n\n// Create another Decimal constructor, optionally passing in a configuration object\nDec = Decimal.clone({ precision: 9, rounding: 1 })\n\nx = new Decimal(5)\ny = new Dec(5)\n\nx.div(3)                           // '1.6667'\ny.div(3)                           // '1.66666666'\n```\n\nThe value of a Decimal is stored in a floating point format in terms of its digits, exponent and sign, but these properties should be considered read-only.\n\n```js\nx = new Decimal(-12345.67);\nx.d                            // [ 12345, 6700000 ]    digits (base 10000000)\nx.e                            // 4                     exponent (base 10)\nx.s                            // -1                    sign\n```\n\nFor further information see the [API](http://mikemcl.github.io/decimal.js/) reference in the *doc* directory.\n\n## Test\n\nTo run the tests using Node.js from the root directory:\n\n```bash\nnpm test\n```\n\nEach separate test module can also be executed individually, for example:\n\n```bash\nnode test/modules/toFraction\n```\n\nTo run the tests in a browser, open *test/test.html*.\n\n## Minify\n\nTwo minification examples:\n\nUsing [uglify-js](https://github.com/mishoo/UglifyJS) to minify the *decimal.js* file:\n\n```bash\nnpm install uglify-js -g\nuglifyjs decimal.js --source-map url=decimal.min.js.map -c -m -o decimal.min.js\n```\n\nUsing [terser](https://github.com/terser/terser) to minify the ES module version, *decimal.mjs*:\n\n```bash\nnpm install terser -g\nterser decimal.mjs --source-map url=decimal.min.mjs.map -c -m --toplevel -o decimal.min.mjs\n```\n\n```js\nimport Decimal from './decimal.min.mjs';\n```\n\n## Licence\n\n[The MIT Licence (Expat).](LICENCE.md)\n"
  },
  "artifacts": [],
  "remote": {
    "resolved": "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23",
    "type": "tarball",
    "reference": "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz",
    "hash": "1044092884d245d1b7f65725fa4ad4c6f781cc23",
    "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
    "registry": "npm",
    "packageName": "decimal.js",
    "cacheIntegrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== sha1-EEQJKITSRdG39lcl+krUxveBzCM="
  },
  "registry": "npm",
  "hash": "1044092884d245d1b7f65725fa4ad4c6f781cc23"
}