@hastom/fixed-point
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

Library for operating with fixed point decimals

It's fully based on native BigInt and does not have any fallbacks (or dependencies)
As fast as pure bigint math

Install

npm i @hastom/fixed-point

Use

import { FixedPoint } from '@hastom/fixed-point'

const a = new FixedPoint(1_200000n, 6) // means 1.2 with precision 6
const b = FixedPoint.fromDecimal(0.3232, 5) // means 0.3232 with precision 5
// it modifies a (!)
a.add(b)
console.log(a.getBase()) // 1523200n means 1.5232 with precision 6
// note that it always keeps first operand precision
console.log(a.toString()) // "1523200"
console.log(a.toDecimal()) // 1.5232
console.log(a.toDecimalString()) // "1.523200"

// all basic math returns self, so chaining is available
a
  .add(b)
  .sub(b)
  .mul(b)
  .div(b)

// comparisons return boolean
a.eq(b)
a.gt(b)
a.lt(b)
a.gte(b)
a.lte(b)

Package Sidebar

Install

npm i @hastom/fixed-point

Weekly Downloads

27

Version

1.0.3

License

MIT

Unpacked Size

30.1 kB

Total Files

9

Last publish

Collaborators

  • hastom