想编写一个辅助计算单纯形法的应用程序,实现的一个要求就是两个数据相除,若是不能整除就用分数表示。(简单说就是两个数相除,结果显示为整数或者是分数)但是在java中两个数一相除就变成了小数(当然或者是整数)大家有没有好的建议呢来帮助我实现这个想法呢?需要编写一个分数类吗?有这个必要吗?有没有更好的方法呢、、、谢谢啦~

解决方案 »

  1.   

    先加个判断,大于0就直接出结果,小于零的话,对除数跟被除数做约分运算,组合成String输出就得了。
      

  2.   

    Apache Commons Math 中的分数类:org.apache.commons.math.fraction.Fraction
    http://commons.apache.org/math/
      

  3.   

    import java.util.Scanner;
    class  Division{
    public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
    long a=sc.nextInt();
    long b=sc.nextInt();
    sc.close();
    double c=a; //long转换为double类型
    if(a/b!=c/b){ //比较结果为整数的值与结果为浮点数的值是否相等
      int i=a>b?(int)Math.floor(Math.sqrt(Math.abs(b))):
        (int)Math.floor(Math.sqrt(Math.abs(a)));//取较小数的绝对值的平方根
      for(int count=2;count<=i;count++){
    if(a%count==0&&b%count==0){
    a/=count;
    b/=count;
    count--;
    }
    else{
    continue;
    }
    }
    System.out.println(a+"/"+b);
    }
    else{
    System.out.println(a/b);
    }
    }
    }