2015-04-06 38 views
0

我想計算0.95的值。這是我的方法:爲什麼我無法計算雙倍值?

public static final int VAR = 5; 
private static double getDouble(){ 
     double dis = (double)(VAR/100); 
     dis = (double)(1-dis); 
     return dis; 
} 

但是,它輸出1.0 ??如果我在主要方法中輸入相同的代碼,則得到0.95。我的錯誤在哪裏?

+0

整數除法的結果將永遠是一個整數。在你的情況下,你的整數然後被轉換爲一個double,在@kocko建議應該修復這個問題。 – npinti 2015-04-06 07:33:13

+0

VAR的數據類型是什麼 – silentprogrammer 2015-04-06 07:36:44

回答

6

(5/100)將返回0,其將被鑄造爲double作爲0.0

只要做到:

double dis = (5d/100); 

既然你已經宣佈VAR = 5,你必須將它轉換爲double,然後做了分工:

double dis = ((double) VAR)/100; 
+0

謝謝!我在代碼中聲明瞭5作爲final static int是什麼?我將更新實際的代碼。 – sammy333 2015-04-06 07:34:01

+0

我更新了它。在這種情況下我能做些什麼? – sammy333 2015-04-06 07:35:52

+0

@ sammy333,結帳我的更新 – 2015-04-06 07:37:05