1.1.1 • Published 6 months ago

precise-fractions v1.1.1

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

What this library does

This library allows you to work with precise fractions, by keeping their nominator and denominator values when doing operations - instead of converting decimals (but reducing them). Also, the precision level is arbitrarily large since, internally, bigints are used.

This can be useful when you want to calculate probabilities, for example.

Usage

Add the package with npm, yarn, pnpm, or bun.

npm i precise-fractions
# or
pnpm add precise-fractions
# or
bun add precise-fractions
# or
yarn add precise-fractions

Import the package

import { createFraction as f } from 'precise-fractions';

Create a fraction

// The fraction can be initialized with numbers, strings and bigints
const myFraction = f(2,3);
const myFraction = f("2","3");
const myFraction = f(2n,3n);
const myFraction = f(2n,"3");

or by importing the fraction class:

import { Fraction } from 'precise-fractions';

const f = new Fraction(2,3);

Use any of the provided operations:

  • add
  • subtract
  • multiply
  • divide
  • power

by either importing them from the package, or directly on the fraction, but this will alter the fraction you are calling the method with:

// Adding and getting a new fraction
import { add } from 'precise-fractions';
const f1 = f(2,3);
const f2 = f(3,4);
const summedFraction = add(f1,f2);

or

// Altering the caller fraction
const f1 = f(2,3);
f1.add(3)
// or
f1.add(f(3)); // If the denominator is omitted, it becomes 1 by default.
console.log(f.toString()) // Outputs 11 / 3

Note that add and multiply can take multiple arguments.

If you want to get the value of a fraction as a number, just cast it as such:

const f1 = f(2,3);
console.log(+f1) // Outputs 0.6666666666666666

You can also cast it to a string:

const f1 = f(2,3);
console.log(`${f1}`) // Outputs '2 / 3'

You can of course also just access the numerator and denominator values:

const f1 = f(2,3);
console.log(f1.numerator) // 2n
console.log(f2.denominator) // 3n
1.1.1

6 months ago

1.1.0

7 months ago

1.0.8

7 months ago

1.0.7

7 months ago

1.0.6

7 months ago

1.0.5

7 months ago

1.0.4

7 months ago

1.0.3

7 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago