Converts decimals to human readable fractions, and fractions to decimals.
npm install readable-fractionsFormats the readable fraction object as a string.
* @param {Object} fraction - The fraction object to convert to a string. It's recommended to use the result of toReadableFraction, but any array with the format of [numerator, denominator] is allowed.
* @param {Boolean} isImproper (optional) - If true, will return an improper fraction if the fraction object has a numerator greater than its denominator.
@returns {String} The fraction object in string format.
Usage:
```
let fractionObject = {
denominator: 3,
error: -3.3333333332441484e-7,
numerator: 1
};
let result = formatReadableFraction(fractionObject);
console.log(result);
// '1/3'``
let fractionObject = {
denominator: 5,
error: -0.012500000000000178,
numerator: 11
};
let result = formatReadableFraction(fractionObject);
console.log(result);
// '2 1/5'``
let fractionObject = {
denominator: 5,
error: -0.012500000000000178,
numerator: 11
};
let result = formatReadableFraction(fractionObject);
console.log(result);
// '11/5'
#### fractionToDecimal
Converts a fraction to a decimal. Unlike toReadableFraction, this is precise.
* @param {String} fraction - The fraction (as a string) to convert.
* @returns {Number} The converted fraction in decimal notation.
Usage:
``
let fraction = '1/4';
let result = fractionToDecimal(fraction);
console.log(result);
// 0.25``
let fraction = '2 1/4';
let result = fractionToDecimal(fraction);
console.log(result);
// 2.25
#### toReadableFraction
Converts a decimal to a human readable fraction with a maximum denominator of 10. This means that the result is NOT precise.
* @param {Number} decimal - The decimal number to convert.
* @param {Boolean} shouldFormat (optional) - If true then the function will return a string instead of the fraction object.
* @returns {Object|String} A fraction object with keys: denominator, error, numerator; OR a formatted fraction string (This will always return a result with a proper fraction so if the decimal is greater than 1 then the resultwill never be improper (e.g. 12/5). To retrieve an improper fraction, call formatReadableFraction on the result of toReadableFraction.
Usage:
``
let decimal = 0.333333;
let result = toReadableFraction(decimal);
console.log(result);
// { denominator: 3, error: -3.3333333332441484e-7, numerator: 1 }```
let decimal = 0.125;
let result = toReadableFraction(decimal, true);
console.log(result); // '1/8'