java中使用分数

您所在的位置:网站首页 计算器里怎么表示分数 java中使用分数

java中使用分数

2023-09-13 02:40| 来源: 网络整理| 查看: 265

  例如, 56/12 不是它的约数,因为它的分子和分母仍然有公倍数。它的简化形式将是 14/3(分子和分母都除以 4)。 为了将分数简化为最简单的形式,计算其分子和分母的最大公约数 (GCD)。GCD是分子和分母的公倍数中最大的数。 分子和分母都除以 GCD 得到分数的约简形式。在上述情况下,56 和 12 的 GCD 是 4,分子和分母除以 4 得到 14/3,这是最简单的分数形式。

 

分数的 运算 所有数学运算也对分数进行,但有不同的方法。常见的操作有:

加法:将两个分数相加,第一个分数的分子乘以第二个分数的分母,第二个分数的分子乘以第二个分数的分母,两者相加形成所得分数的分子。所得分数的分母由两个分数的分母相乘确定。最后,所得分数减少到最低形式。例如, 2/7 + 7/4 = (2 * 4) + (7 * 7) / (7 * 4) = 57/28

减法: 与加法类似,第一个分数的分子乘以第二个分数的分母,第二个分数的分子乘以第二个分数的分母,两者相减以形成所得分数的分子。所得分数的分母由两个分数的分母相乘确定。例如, 11/3 – 2/5 = (11 * 5) – (2 * 3) / (3 * 5) = 49/15

乘法:这是直截了当的。第一个分数的分子乘以第二个分数的分子,第二个分数的分母乘以第二个分数的分母。最后,所得分数被简化为最简单的形式。  例如, 14/5 * 2/7 = (14 * 2) / (5 * 7) = 28/35 = 4/5(简化为最简单的形式)

除法:第一个分数的分子与第二个的分母相乘,第一个分数的分母与第二个的分子相乘,得到的分数简化为最简单的形式。例如, 12/7 ÷ 4/3 = 36/28 = 9/7(简化为最简单的形式)

 

 

 

使用java程序操作

下面给出了对分数执行上面列出的所有数学运算的 Java 程序。

public class Fraction { int numerator; int denominator; /** * Constructor * * @param numr * @param denr */ public Fraction(int numr, int denr) { numerator = numr; denominator = denr; reduce(); } public int getNumerator() { return numerator; } public void setNumerator(int numerator) { this.numerator = numerator; } public int getDenominator() { return denominator; } public void setDenominator(int denominator) { this.denominator = denominator; } /** * Calculates gcd of two numbers * * @param numerator * @param denominator * @return */ public int calculateGCD(int numerator, int denominator) { if (numerator % denominator == 0) { return denominator; } return calculateGCD(denominator, numerator % denominator); } /** * Reduce the fraction to lowest form */ void reduce() { int gcd = calculateGCD(numerator, denominator); numerator /= gcd; denominator /= gcd; } /** * Adds two fractions * * @param fractionTwo * @return */ public Fraction add(Fraction fractionTwo) { int numer = (numerator * fractionTwo.getDenominator()) + (fractionTwo.getNumerator() * denominator); int denr = denominator * fractionTwo.getDenominator(); return new Fraction(numer, denr); } /** * Subtracts two fractions * * @param fractionTwo * @return */ public Fraction subtract(Fraction fractionTwo) { int newNumerator = (numerator * fractionTwo.denominator) - (fractionTwo.numerator * denominator); int newDenominator = denominator * fractionTwo.denominator; Fraction result = new Fraction(newNumerator, newDenominator); return result; } /** * Multiples two functions * * @param fractionTwo * @return */ public Fraction multiply(Fraction fractionTwo) { int newNumerator = numerator * fractionTwo.numerator; int newDenominator = denominator * fractionTwo.denominator; Fraction result = new Fraction(newNumerator, newDenominator); return result; } /** * Divides two fractions * * @param fractionTwo * @return */ public Fraction divide(Fraction fractionTwo) { int newNumerator = numerator * fractionTwo.getDenominator(); int newDenominator = denominator * fractionTwo.numerator; Fraction result = new Fraction(newNumerator, newDenominator); return result; } /** * Returns string representation of the fraction */ @Override public String toString() { return this.numerator + "/" + this.denominator; } public static void main(String[] args) { Fraction f1 = new Fraction(25, 35); System.out.println(f1.toString()); Fraction f2 = new Fraction(2, 7); Fraction f3 = f1.add(f2); System.out.println("Result of addition of " + f1 + " and " + f2 + " is : " + f3); f3 = f1.subtract(f2); System.out.println("Result of subtraction of " + f1 + " and " + f2 + " is : " + f3); f3 = f1.divide(f2); System.out.println("Result of division of " + f1 + " and " + f2 + " is : " + f3); f3 = f1.multiply(f2); System.out.println("Result of multiplication of " + f1 + " and " + f2 + " is : " + f3); } }

 

输出

7/4 和 2/7 相加的 结果是:57/28 7/4 和 2/7 相减的 结果是:41/28 7/4 和 2/7 相除的 结果是:49/8 7/4 和 2/7 的乘法是:1/2

 

 

解释 上面的类描述了一个 Fraction ,它有两个字段代表分数的分子和分母。该类具有用于初始化分数字段的构造函数。 它还包含一种reduce将分数转换为其简化形式的方法。因此,调用分数 25/35 的此方法将其转换为 5/7。它在内部计算分数的 gcd,它是分数的分子和分母的最大倍数,然后将分子和分母除以这个 gcd。 计算gcd的方法是一种递归方法,它不断调用自己,直到分子除以分母的余数为0。因此,对于分子为25,分母为35的分数,最大公约数为5,简化分数变为( 25 ÷ 5) / (35 ÷ 5) = 5/7。 该类包含对分数进行加、减、乘和除的方法,并处理如上所述的类似算法。所有这些方法都接受一个 Fraction 对象作为参数,作为第二个分数。第一个部分是调用这些方法的对象。 该类还包含一个toString() 方法,该方法以分数的“分子/分母”的形式返回分数的字符串版本。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3