2013-04-03 19 views
-2

這就是我想要做的事:在Java中的增加?

double speed = distance/time; 
double ex1 = (random - 40) * time; 
double finalAmount = speed + ex1; 

速度,距離等都是分配一個值

出於某種原因,我得到不正確的答案

+1

'double'?在_JavaScript_中?你會得到什麼答案? (例如,Chrome回答了'5'。) – nnnnnn

+1

以何種方式錯誤? – NPE

+1

給出一個最小的代碼,顯示你得到的不正確答案,否則沒有人能夠提供幫助。 – Axel

回答

1

不知道你是什麼意思究竟是「不正確的答案」,但是這(基於2 + 3 = 5你原來簡單的代碼)工作正常,我:

class Test { 
    public static void main(String args[]) { 
     double a = 2.0; 
     double b = 3.0; 
     double c = a + b; 
     System.out.println(c); 
     System.out.println(c == 5.0); 
    } 
} 

輸出是:

5.0 
true 

這對我來說似乎很不錯。


然而,記住的東西,如:

double speed = distance/time; 

(更新後的代碼),如果distancetime沒有雙打,他們將之前計算使用他們的母語型晉升到一倍。

一個示例,請參見下面的程序:

class Test { 
    public static void main(String args[]) { 
     int distance = 58; 
     int time = 60; 

     double speed = distance/time; 
     System.out.println(speed); 

     speed = (double)distance/time; 
     System.out.println(speed); 
    } 
} 

此輸出:

0.0 
0.9666666666666667 

表明該清一色int版本的作品出58/60爲整數0,然後該轉換的雙0.0

0

浮點數不可用於int微積分。

int a = 2; 
int b = 3; 
int c = a + b; 
assert c == 5; 

隨着整數,沒有意外。

0
double a = 2.0; double b = 3.0; 
     double c = a + b; 
     System.out.println(c); 

輸出顯示在java和爲JavaScript使用parseDouble 5.0()