2015-09-28 108 views
-5

我剛開始用MIT OCW開始學習Java。我寫的第一個程序只是一個非常小的計算,但它印出了一些意想不到的東西。 所以這是我的代碼:Java,意想不到的輸出

public class test 
{ 
    public static void main (String[] args) 
    { 
     int s = 120; 
     int g = 12; 
     double fraction = g/s; 
     System.out.println ("Fraction: " + fraction); 
     } 
    } 

我預計這樣的輸出:

Fraction: 0.1 

但我得到這樣的輸出:

Fraction: 0.0 

,我會很感激,如果有人可以解釋我這個輸出。

+0

您執行了整數除法。 – csmckelvey

回答

0

更改您的增值經銷商爲double,而不是int,你會從分工得到一個更好的結果:

double s = 120.0; 
    double g = 12.0; 

一般情況下,請記住,在像的Java,類型事項類型語言。 int不會神奇地給你一個non-intdouble的結果。這就是爲什麼有兩種不同的類型...

+0

它工作。謝謝。我應該使用double而不是int,還是僅在這種情況下才重要? –

+1

「一般」?不可以。您應該瞭解整數除法的工作方式,整數與浮點數的不同之處,併爲每種情況選擇正確的值。 – duffymo