当前位置:首页 > JavaScript

js实现分数

2026-04-05 14:36:26JavaScript

分数表示方法

在JavaScript中,分数可以通过对象或类来表示。常见的方法是创建一个包含分子和属性的对象。

const fraction = {
  numerator: 3,
  denominator: 4
};

分数运算

实现基本的分数运算需要处理加减乘除以及约分。

function addFractions(a, b) {
  const numerator = a.numerator * b.denominator + b.numerator * a.denominator;
  const denominator = a.denominator * b.denominator;
  return simplify({ numerator, denominator });
}

function simplify(fraction) {
  const gcd = findGCD(fraction.numerator, fraction.denominator);
  return {
    numerator: fraction.numerator / gcd,
    denominator: fraction.denominator / gcd
  };
}

function findGCD(a, b) {
  return b === 0 ? a : findGCD(b, a % b);
}

类实现

使用ES6类可以更好地封装分数操作:

class Fraction {
  constructor(numerator, denominator) {
    this.numerator = numerator;
    this.denominator = denominator;
  }

  add(other) {
    const numerator = this.numerator * other.denominator + other.numerator * this.denominator;
    const denominator = this.denominator * other.denominator;
    return new Fraction(numerator, denominator).simplify();
  }

  simplify() {
    const gcd = this.findGCD(this.numerator, this.denominator);
    return new Fraction(this.numerator / gcd, this.denominator / gcd);
  }

  findGCD(a, b) {
    return b === 0 ? a : this.findGCD(b, a % b);
  }
}

使用示例

const frac1 = new Fraction(1, 2);
const frac2 = new Fraction(1, 4);
const result = frac1.add(frac2); // 返回 3/4

注意事项

处理分数时需要考虑分母为零的情况,应在构造函数中添加验证:

constructor(numerator, denominator) {
  if (denominator === 0) throw new Error('Denominator cannot be zero');
  this.numerator = numerator;
  this.denominator = denominator;
}

负分数通常将负号放在分子上,可以在简化时处理:

js实现分数

simplify() {
  let numerator = this.numerator;
  let denominator = this.denominator;

  if (denominator < 0) {
    numerator *= -1;
    denominator *= -1;
  }

  const gcd = this.findGCD(Math.abs(numerator), Math.abs(denominator));
  return new Fraction(numerator / gcd, denominator / gcd);
}

标签: 分数js
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…