| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 'use strict'var abs = Math.absvar round = Math.roundfunction almostEq(a, b) {  return abs(a - b) <= 9.5367432e-7}//最大公约数 Greatest Common Divisorfunction GCD(a, b) {  if (almostEq(b, 0)) return a  return GCD(b, a % b)}function findPrecision(n) {  var e = 1  while (!almostEq(round(n * e) / e, n)) {    e *= 10  }  return e}function num2fraction(num) {  if (num === 0 || num === '0') return '0'  if (typeof num === 'string') {    num = parseFloat(num)  }  var precision = findPrecision(num) //精确度  var number = num * precision  var gcd = abs(GCD(number, precision))  //分子  var numerator = number / gcd  //分母  var denominator = precision / gcd  //分数  return round(numerator) + '/' + round(denominator)}module.exports = num2fraction
 |