我想計算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.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。我的錯誤在哪裏?
(5/100)
將返回0
,其將被鑄造爲double
作爲0.0
。
只要做到:
double dis = (5d/100);
既然你已經宣佈VAR = 5
,你必須將它轉換爲double
,然後做了分工:
double dis = ((double) VAR)/100;
整數除法的結果將永遠是一個整數。在你的情況下,你的整數然後被轉換爲一個double,在@kocko建議應該修復這個問題。 – npinti 2015-04-06 07:33:13
VAR的數據類型是什麼 – silentprogrammer 2015-04-06 07:36:44