Arbitrary-precision Decimal (Light)
JSON →decimal.js-light is an arbitrary-precision Decimal type for JavaScript, currently at stable version 2.5.1. It is a 'light' version of the more comprehensive `decimal.js` library, specifically optimized for a smaller footprint (12.7 KB minified compared to `decimal.js`'s 32.1 KB). This reduction in size comes with specific tradeoffs: it does not support `NaN`, `Infinity`, or `-0` as legitimate values, nor does it handle numbers in bases other than 10. A key difference in behavior is its approach to rounding; arithmetic operations such as division are truncated at the required precision by default, unlike `decimal.js` where a global rounding mode can apply to such operations. Explicit rounding methods like `toDecimalPlaces` must be called to achieve rounded results. Furthermore, transcendental functions like `naturalExponential`, `naturalLogarithm`, `logarithm`, and `toPower` have a default precision limited to about 100 digits, which can be extended by configuring the `LN10` property. The library also distinguishes its internal `e` property (base 10000000 exponent) from the `exponent()` method (base 10 exponent). The project appears to be actively maintained, with regular updates. It provides TypeScript type declarations.
Traffic · last 30 days ↓27% vs prev 7d
top countries 🇸🇬 Singapore · 🇺🇸 United States · 🇨🇦 Canada · 🇩🇪 Germany · 🇫🇷 France