New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
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
  • Socket score

Version published
Weekly downloads
0
decreased by-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

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc