2012-01-04 163 views
2

我一直沒有能夠在網站上找到這些規則,(當然,因爲我用google搜索錯誤的東西),所以我在這裏問。java數學結果類型

int除以int並存儲在double中總是首先存儲舍入的整數。我能夠找到的唯一方法就是在分割之前將兩個值都賦值爲double。有一個更好的方法。

另外,返回類型的規則在哪裏?

回答

3

在編程語言中,有兩種類型的操作:

  • 整數運算
  • 浮點運算(Float,Double等)

如果2個操作數是整數類型,整數操作被執行。
如果任何人的2個操作數是浮點型,則執行浮點型操作。

這樣的:

Int/Int --------> int 
Double/Int -----> Double 
Double/Double --> Double 
4

其實,沒有不一定有更好的辦法。用int除int得到一個int。所以,假設你除以5/2 - 因爲沒有2到3之間的整數,所以你得到2.如果你想要一個浮點結果,你需要讓它們中的一個成爲浮點類型;而不是

int f=5, t=2; 
double result; 

result = f/t; 

使用類型轉換告訴它讓它

result = f/(double) t ; 

「我想浮點除法該死!」。

1

你只需要投一個參數,使結果的雙

int a,b; 
double d = (double) a/b; 

一個更簡單的方法是使用從雙打開始。

double a, b; 
double d = a/b; 

double可以表示沒有舍入誤差每個可能int值。

可能重複:How to divide two large integers in java?

0

肯定有一個更好的辦法。只需將其中一個投射到double,另一個將自動轉換。

類型的表達是由參數確定被存儲在它之前,從而其他的答案狀態,一個intint分割產生一個int,這將僅然後被存儲爲double。請注意,這不是特定於Java,它發生在我知道的每一種語言中,都是整數除法。