yetanotherfractionlibrary

Yet Another Fraction Library, stores fractions as actual integer division

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
yetanotherfractionlibrary
001.2.23 months ago4 months agoMinified + gzip package size for yetanotherfractionlibrary in KB

Readme

Yet Another Fraction Library
Tests License: Unlicense
This is a library for dealing with fractions directly instead of decimal numbers.

Features

  • x Fractions are represented as a string containing numerator and denominator.
  • x Fractions can be simplified.
  • x Fractions can be inverted.
  • x Fractions can be added, subtracted, multiplied, and divided.
  • x Fractions can be raised to an integer power.
  • x Fractions can be compared.
  • x Fractions can be converted to decimal numbers.
  • x Decimal numbers can be converted to fractions.
  • Fractions can be raised to a fractional power.

Installation

yafl has no production dependencies.
To install yafl, run the following command:
npm install --production yetanotherfractionlibrary

Usage

FractionString
A string representing a fraction.
'1/2'
'5/3'
'3/1'

isFraction(<FractionString>) -> Boolean
Returns true if <FractionString> is a valid fraction.
isFraction('1/2') // true
isFraction('1/0') // false
isFraction('sdf/sdf') // false

reduce(<FractionString | Number>) -> FractionString
Reduces a fraction to its simplest form.
reduce('2/4') // '1/2'

add(<FractionString | Number>, <FractionString | Number>) -> FractionString
Adds two fractions.
add('1/2', '1/4') // '3/4'

sub(<FractionString | Number>, <FractionString | Number>) -> FractionString
Subtracts two fractions.
sub('5/6', '1/2') // '2/6'

mul(<FractionString | Number>, <FractionString | Number>) -> FractionString
Multiplies two fractions.
mul('1/2', '1/4') // '1/8'

div(<FractionString | Number>, <FractionString | Number>) -> FractionString
Divides two fractions.
div('1/2', '1/4') // '2'

pow(<FractionString | Number>, <Number>) -> FractionString
Raises a fraction to a power.
pow('1/2', 2) // '1/4'

inv(<FractionString | Number>) -> FractionString
Inverts a fraction.
inv('1/2') // '2/1'

compare(<FractionString | Number>, <FractionString | Number>) -> Number
Compares two fractions, returning -1 if the first fraction is less than the second, 0 if they are equal, and 1 if the first fraction is greater than the second.
compare('1/2', '3/4') // -1
compare('1/2', '1/2') // 0
compare('1/2', '1/4') // 1

toDecimal(<FractionString>) -> Number
Converts a fraction to a decimal number.
toDecimal('1/2') // 0.5

toFraction(<Number>) -> FractionString
Converts a decimal number to a fraction.
toFraction(0.5) // '1/2'