1.0.3 • Published 5 months ago

@hastom/fixed-point v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

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)