0

我正在尝试实现基本计算。该程序接受 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

4 回答 4

4

您需要将数字转换为double

double temp = ((double) n1) / n2;
于 2013-04-25T16:44:36.433 回答
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);
于 2013-04-25T17:34:33.763 回答
0

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

你可以通过 dooing 将所有 int 更改为 double 或将 int 转换为 double

((double) yourIntValue)
于 2013-04-25T16:47:28.217 回答
0

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

double dval=Double.parseDouble(value);
于 2013-04-25T16:49:42.563 回答