如何在Java中添加分数

如何在Java中添加分数,java,math,fractions,Java,Math,Fractions,我试图做一个简单的程序,添加两个分数 public static void add(int nom1, int denom1, int nom2, int denom2){ int comd = denom1*denom2; //creates common denominator by multiplying both denominators int answer = nom1*nom2+nom1*nom2; //attempting to get answer

我试图做一个简单的程序,添加两个分数

    public static void add(int nom1, int denom1, int nom2, int denom2){

    int comd = denom1*denom2; //creates common denominator by multiplying both denominators

    int answer = nom1*nom2+nom1*nom2; //attempting to get answer (not working very well)

    System.out.println(nom1+"/"+denom1+" + "+nom2+"/"+denom2+" = "+answer+"/"+comd); // outputs   test like 1/2 + 4/8 = 8/8

    start(); // restarts the program
}

不幸的是,我的计算结果不起作用,我想不出另一种方法。提前感谢任何提供帮助的人。很抱歉,如果这看起来很无聊,但我在网上找不到任何我能理解的东西。

我很确定它应该是:

int answer = nom1*denom2 + nom2*denom1;
而不是:

int answer = nom1*nom2+nom1*nom2;
试试这个

public static void add(int nom1, int denom1, int nom2, int denom2){

    int comd = denom1*denom2; //creates common denominator by multiplying both denominators

    int newNomAnswer = nom1*denom2 + nom2*denom1;


    System.out.println(nom1 + "/" + denom1 + " + " + nom2 + "/" + denom2 + " = " + newNomAnswer + "/" + comd);

    start(); 
}

尽管jrahhali的答案是正确的。如果您选择添加2个以上的分数,我的版本可以很好地扩展

 int comd = denom1 * denom2;
 int answer = (comd/denom1 * nom1) + (comd/denom2 * nom2);

 System.out.println(nom1 + "/" + denom1 + " + " + nom2 + "/" + denom2 
                    + " = " + answer + "/" + comd);
这是因为我不像他那样跳过除法


我所做的不是每次都说nom和denom,而是说commDeno和totNum。代码:

Public void AddFraction(int nom, int denom, int nom2, int denom2){

  Int comD, totNom;

  Nom = nom*denom2;
  Nom2 = nom2*denom;
  totNom =num+num2;
  comD = denom*denom2;
  Sysout(totNum + "/" +comD);

}

在Java中添加两个分数的方法是首先找到两个分母中的一个:denom=lcm(denom1,denom2)。这是答案的分母

然后使用以下公式找到命名者:nom=denom/denom1*nom1+denom/denom2*nom2


最后,您可以通过将分子和分母除以它们的值来简化分数。试试看。

我对数学有点生疏,但我很确定它应该是:int-answer=nom1*denom2+nom2*denom1.@jrahhali您应该补充这一点作为一个一般提示,您应该使用Eulers-GCD算法来获得最简单的输出形式。谢谢大家的建议