【问题标题】:Simplifying Fractions With java用java简化分数
【发布时间】:2011-07-30 10:42:27
【问题描述】:

嘿,伙计们,我正在开发一个软件,我有点需要帮助,你知道我们需要制定一种方法来简化分数。知道怎么做吗?这是我现在的代码(不要介意 dvalue 方法,它已经完成了我所需要的只是简化方法)

public class Fraction {

    public int num;
    public int den;
    public double dValue;

    public void display()
    {
        System.out.println("Numerator: "+num);
        System.out.println("Denominator: "+den);
    }

    public double dValue()
    {
        dValue = (double)num/den;
        return dValue;
    }


}

public class FractionTest {

        public static void main(String args[])
        {
            Fraction f = new Fraction();
            f.num = 50;
            f.den = 100;
            f.display();

            double d = f.dValue();
            System.out.println(d);
        }   
}

【问题讨论】:

  • 可能想先接受您之前一些问题的答案。
  • 你为什么不使用 Commons Math?

标签: java numbers rational-number fractions


【解决方案1】:

如果您遵循以下步骤,化简分数很容易:

  1. 找到 num 和 den 的 gcd,所以你有 gcd=GCDFind(gcd, num);
  2. 现在,如果 gcd==1,则不能简化分数(它已经是简化形式)。
  3. 如果 gcd > 1,则 newNum = num/gcd;和 newDen = den/gcd;

我想这就是你所需要的。

gcd 代表 Greates Common Divisor... 代码很容易找到,我只是在几秒钟内搜索了以这种方式工作的 JavaScript 实现:http://www.calculla.com/en/fraction

【讨论】:

  • 我已经知道了,gcd 的算法是什么?因为我想得到它的最低形式的分子和分母
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-08
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多