2014-09-23 29 views
0

請賜教,爲什麼這是不行的? :|這只是一個簡單的輸出線,上帝,我很沮喪。我知道這可能是我非常想念的東西,但我無法弄清楚。在java中打印一個簡單的雙數

double a = 155/124; 
System.out.printf("%f\n", a);  

它打印

1.00000 
+1

嘗試double a = 155d/124d;而不是 – 2014-09-23 09:21:27

+1

thx,我確信它只是一個小魚苗:)),thx的傢伙,並抱歉重複 – Loki 2014-09-23 09:29:35

+0

以及很多新來的java不知道這一點......當你寫一個數字它是*總是*一個整數,並且必須被轉換爲任何你需要的東西(例如:String str =「」+0; < - 整數或者即使你寫的很長l = 2147483648; < - Integer.MAX_VALUE + 1將不起作用,因爲2147483648又是一個整數!!)[okok - 它不是**總是**整數,但大多數情況下總是] – 2014-09-23 09:30:15

回答

0

試試這個

double a = 155d/124d ; 
System.out.printf("%f\n", a); 
2

它的工作就好了。只要記住兩兩件事:

  1. 你使用整數,計算的結果將是一個整數
  2. 舍入誤差
0

那麼,你是將兩個整數沒有鑄造它明確地翻番。 將變量a加上(double):

double a =(double)155/124;

或者,您可以創建一個號碼是雙,如:

雙A = 155/124.0;

希望這會有所幫助。