🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

fixed-point

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fixed-point

Fixed point arithmetic with BigInt. Can be used for money or scientific calculations with known precision.

0.8.0
latest
npm
Version published
Weekly downloads
2
100%
Maintainers
1
Weekly downloads
 
Created
Source

🗿 fixed-point

Fixed point arithmetic with BigInt. Minimalistic library that can be used for money or scientific calculations with known precision.

Examples

Install package npm install fixed-point or include minified script on page.

import { FixedPoint } from 'fixed-point';

// Simple example: 0.3 - 0.2 = 0.1
console.log(new FixedPoint(0.3).sub(0.2).toString());

// Price with 30% discount, rounding benefiting the customer
FixedPoint.setRounding('floor');
console.log(new FixedPoint('99.95').mul(0.70).toFixed())

// Bitcoin fee with banker rounding: 1.0 BTC - 0.00005 BTC = 0.99995000 BTC  
FixedPoint.setRounding('even');
FixedPoint.setPrecision(8);
console.log(new FixedPoint('1').sub('0.00005').toFixed() + ' BTC');

// Rounding mode for fast calculations
FixedPoint.setRounding('trunc');
FixedPoint.setPrecision(15);
console.log(new FixedPoint('3.14159265358979').mul('2'));

API

  • new FixedPoint(string) - constructor from String
  • new FixedPoint(number) - constructor from Number
  • a.toString() - conversion to String
  • a.toFixed() - conversion to String
  • FixedPoint.setPrecision(number) - set precision (2 decimal places is default)
  • FixedPoint.setRounding(string) - set rounding ('trunc'|'floor'|'ceil'|'even'), 'even' is default
  • a.add(b) - addition (exact)
  • a.sub(b) - subtraction (exact)
  • a.mul(b) - multiplication (rounded)
  • a.div(b) - division (rounded)
  • a.eq(b) - a == b
  • a.ne(b) - a != b
  • a.gt(b) - a > b
  • a.ge(b) - a >= b
  • a.lt(b) - a < b
  • a.le(b) - a <= b

Status: alpha.

2do

  • constructors, toString/toFixed
  • operations: +|-|*|/
  • 4 rounding modes from IEEE 754-1985: RN, RZ, RU, RD
  • testing rounding modes with table
  • get feedback
  • add benchmark
  • add precision conversion: x.xxxxxxxx BTC in xx.xx $
  • add build with BigInt polyfill

Keywords

fixed

FAQs

Package last updated on 18 Oct 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts