Java 分数比较compareTo(Object obj)方法

要求:
1. 不能用分子除与分母的结果来比较大小,这样不精确。
2.分母为零分子为正数时分数为无穷大,两个无穷大的数相等,无穷大的数大于一切其他数;分母为零分子为负数时分数为负无穷大,两个负无穷大的数相等,负无穷小于一切其他数。
3. 正无穷大大于负无穷大,两个负无穷大的分数一样大,两个正无穷大的分数一样大。谢谢指导。

 假设你的分数类
class fraction implements Comparable
{
public int x; //分母
public int y; //分子
public int compareTo(Object obj)
{
    fraction f2 = (fraction)f2;
        if (y < 0) { y = -y; x = -x; }
        if (f2.y < 0) { f2.y = - f2.y; f2.x = - f2.x; }
        int x1 = x * f2.y;
        int x2 = f2.x * y;
        return x1.compareTo(x2);
}
}