decimal128

12.3.0 • Public • Published

decimal128.js—A userland approximation to IEEE 754 Decimal128 in JavaScript

This library is a prototype for the decimal proposal. There should be no observable difference between what this library does and what the proposal is supposed to do. If you find a mismatch, please file an issue in this repo.

Operations

  • absolute value (abs)
  • addition (add)
  • subtraction (subtract)
  • multiplication (multiply)
  • division (divide)
  • remainder (remainder)
  • rounding (round)
  • toString emitting both decimal and exponential syntax (default is decimal)

Comparisons

  • equality (equals) to compare for mathematical equality
  • less than (lessThan) to compare mathematical order
  • compare for comparing Decimals as digit strings (not mathematical order; e.g. 1.2 < 1.20)

Implementation

This package is written in TypeScript. Unit tests are in Jest. There are no other external dependencies.

Data model

This package aims to reproduce the IEEE 754 Decimal128 128-bit decimal floating-point numbers in JavaScript. See the decimal proposal. These decimal (not binary!) numbers take up 128 bits per number. This format allows for an exact representation of decimal numbers with 34 (decimal) significant digits and an exponent between -6143 and 6144. That's a vast amount of range and precision!

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 12.3.0
    61
    • latest

Version History

Package Sidebar

Install

npm i decimal128

Weekly Downloads

31

Version

12.3.0

License

ISC

Unpacked Size

128 kB

Total Files

30

Last publish

Collaborators

  • jessealama