2013-04-25 264 views
0

我正在嘗試實現基本計算。該程序採用2個數字,它正常工作,10除以5並給出答案2.如果任何較小的值除以較大的值,它會給我0,我可以在小數中得到答案嗎?java中的數學計算分數

例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); 

    } 

} 
+0

參見:http://stackoverflow.com/questions/474535/best-way-to-在Java中表示分數?rq = 1 – Justin 2013-04-25 17:37:45

回答

4

您需要將您的數字轉換爲double分爲:相反

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

並格式化輸出! – 2013-04-25 16:45:02

+0

這給了他一個小數的結果,他想輸出爲分數。 – NominSim 2013-04-25 16:46:55

+0

答案顯示0.08 – newbieprogrammer 2013-04-25 16:48:54

0

使用整數,你需要用雙。 這是因爲整數只能包含數字,其中double可以包含十進制數字。

ü可以改變所有的INT兩倍或鑄由dooing

((double) yourIntValue) 
0

你也可以得到輸入的字符串翻一番,並與

double dval=Double.parseDouble(value); 
2

解析它。如果你想要產生一小部分,你可以打印出來:

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

這將打印出你給的任何數字thoug h,他們不會減少。 但是,您可以自己減少他們的東西,如:

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);