fraction-kit
v1.0.0
Published
A small, educational npm library for exact fraction math in Javascript.
Readme
fraction-kit
fraction-kit is a small, educational JavaScript library for exact fraction arithmetic.
It keeps fractions normalized (reduced, positive denominator) and provides an immutable API.
Installation
npm install fraction-kitQuick Start
const Fraction = require("fraction-kit");
const a = new Fraction("1/2");
const b = new Fraction(3, 4);
console.log(a.add(b).toString()); // "5/4"
console.log(a.sub("1/6").toString()); // "1/3"
console.log(a.mul(2).toString()); // "1"
console.log(a.div("2/3").toString()); // "3/4"Constructor Inputs
You can create a Fraction from:
- Two integers:
new Fraction(numerator, denominator) - A fraction string:
new Fraction("a/b") - An integer:
new Fraction(7) - Another
Fraction:new Fraction(existingFraction)
Examples:
new Fraction(2, 4).toString(); // "1/2"
new Fraction("10/-15").toString(); // "-2/3"
new Fraction(7).toString(); // "7"Basic API
add(value)-> returns a newFractionsub(value)-> returns a newFractionmul(value)-> returns a newFractiondiv(value)-> returns a newFractionequals(value)-> returnstrue/falsecompare(value)-> returns-1,0, or1toString()->"a"or"a/b"toDecimal()-> decimalnumber
value can be a Fraction, integer number, or fraction string where relevant.
More Examples
Mixed input types
const Fraction = require("fraction-kit");
console.log(new Fraction("1/3").add(2).toString()); // "7/3"
console.log(new Fraction("5/6").sub("1/3").toString()); // "1/2"Comparison and formatting
const Fraction = require("fraction-kit");
console.log(new Fraction("1/2").equals("2/4")); // true
console.log(new Fraction("1/5").compare("1/4")); // -1
console.log(new Fraction("14/49").toString()); // "2/7"
console.log(new Fraction("1/4").toDecimal()); // 0.25Error handling
const Fraction = require("fraction-kit");
try {
new Fraction("1/0");
} catch (error) {
console.error(error.message); // "Denominator cannot be zero"
}