public class RationalTest {
    public static void main(String args[]){
     Rational r = new Rational(4, 5);
     Rational s = new Rational(3, 8);
     Rational t = new Rational(4.3f);
    
     r.print();
        s.print();
        t.print();
        t = r.add(s);
        t.print();    }
}class Rational {
    private int denominator;
    private int numerator;
    public Rational(int d, int n){
denominator = d;
numerator = n;
    }    public Rational(){
denominator = 1;
numerator = 0;
    }    public int denominator(){
return denominator;
    }    public int numerator(){
return numerator;
    }    public Rational add(Rational r){
     return new Rational(denominator*r.denominator, (numerator * r.denominator+denominator * r.numerator);
    }
    public void print(){
System.out.println(numerator + " / " + denominator);
    }
}怎样把实数改为分数表示啊? 有限的实数和无限的实数该怎么考虑啊?
public Rational(float f) ?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【todd58】截止到2008-07-03 00:34:36的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:20                       
    结贴的总数量:1                        结贴的总分数:20                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    简单点就是toString,然后判断小数位来得到分母是多少个0就可以得到了像 4.3就可以变换成 43/10了不过像 0.33333333333这样你到底认为是 33333333333 / 10000000000还是 1/3呢?  这个其实不好说
      

  3.   

    嗯,可以去看看 Apache Commons 的 Lang 包,有一些 Fraction 的实用静态方法,
    如果需要功能再好点的话,可以看看 Math 包。import org.apache.commons.lang.math.Fraction;public class Test3 {
        public static void main(String[] args) {
            double d = Math.PI;
            Fraction fraction = Fraction.getFraction(d);
            System.out.println(fraction.toString());
            System.out.println(fraction.toProperString());
        }
    }输出:355/113
    3 16/113Commons Lang:http://commons.apache.org/lang/
    Commons Math:http://commons.apache.org/math/Commons 库都有源代码的,有兴趣的话可以去看看。