嘿,伙计们,我在这里工作的SW我有点需要帮助,你看,我们需要做一个方法,我们将简化分数。知道怎么做吗?这是我现在的代码(不要介意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);
}
}
如果你能遵循以下步骤,简化分数是很容易的:
- 查找num和den的gcd,所以你有gcd=GCDFind(gcd, num);
- 现在,如果gcd==1,则分数不能简化(它已经是简化形式)。 如果gcd> 1,则newNum = num/gcd;and newDen = den/gcd;
我想这就是你所需要的。
gcd代表大公约数…代码很容易找到,我只是在几秒钟内谷歌了一下这样工作的JavaScript实现:http://www.calculla.com/en/fraction
你可以看看这些链接,它们会很有帮助的
- http://www.daniweb.com/software-development/java/threads/13663
- http://www.dreamincode.net/forums/topic/64342-reducing-a-fraction/
- 简化Java分数
和更多…