java Fraction中的数学计算

时间:2013-04-25 16:43:14

标签: java

我正在尝试实施基本计算。该程序接受2个数字,它工作正常10除以5并给出答案2.如果任何较小的值除以较大的值它将给我0,我可以得到分数的答案吗?

实施例8除以100等于8/100而不是0.

 public class numtheory {

     public static void main(String[] args) {

         int n1;
         int n2;
         Scanner scan = new Scanner(System. in );
         System.out.println("input number 1: ");
         n1 = scan.nextInt();
         System.out.println("input number 2: ");
         n2 = scan.nextInt();
         int temp1 = n1 / n2;
         System.out.print("\n Output :\n");
         System.out.print(temp1);
         System.exit(0);

     }

 }

4 个答案:

答案 0 :(得分:4)

您需要将您的号码转换为double

double temp = ((double) n1) / n2;

答案 1 :(得分:3)

如果你想制作一个分数,你可以打印出来:

System.out.println(n1 + "/" + n2);

这将打印出您给出的任何数字,但不会减少。 你可以通过以下方式自己减少它们:

int n = n1;
int d = n2;

while (d != 0) {
    int t = d;
    d = n % d;
    n = t;
}

int gcd = n;

n1 /= gcd;
n2 /= gcd;

然后打印出来:

System.out.println(n1 + "/" + n2);

答案 2 :(得分:0)

您需要使用double,而不是使用整数。 这是因为整数只能包含double可以包含十进制数的数字。

你可以将所有的int改为double,或者通过dooing将in转换为double加倍

((double) yourIntValue)

答案 3 :(得分:0)

您还可以将输入作为字符串获取,并使用

进行解析
double dval=Double.parseDouble(value);