everyutil
Version:
A comprehensive library of lightweight, reusable utility functions for JavaScript and TypeScript, designed to streamline common programming tasks such as string manipulation, array processing, date handling, and more.
23 lines (22 loc) • 846 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.decimalToFraction = void 0;
/**
* Converts a decimal number to its simplest fractional form.
* For example, decimalToFraction(0.75) returns [3, 4].
* @author @dailker
* @param {number} n - The decimal number to convert.
* @returns {[number, number]} The numerator and denominator of the fraction.
*/
function decimalToFraction(n) {
if (Number.isInteger(n))
return [n, 1];
let denominator = 1;
while (Math.round(n * denominator) !== n * denominator)
denominator *= 10;
const numerator = Math.round(n * denominator);
const gcd = (a, b) => b ? gcd(b, a % b) : a;
const d = gcd(numerator, denominator);
return [numerator / d, denominator / d];
}
exports.decimalToFraction = decimalToFraction;