2014-03-01 63 views

回答

5

您需要將其中一個作爲float進行投射,或者從一開始就聲明其中一個變量爲float。否則,Java的整數除法將接管,正如int除以int必須是int,這也適用於long

float c = (float) a/b; 
2

您正在使用整數運算,然後將結果存儲在一個浮點數中。

float c = ((float)a)/b; 

會給你一個浮動,但使用雙打會更精確。

,或者使用的BigDecimal

BigDecimal d = new BigDecimal(a).Divide(new BigDecimal(b)); 
2

劃分不十進制值(整數和浮點)之間完成,那麼結果將不是小數則澆鑄浮動,但十進制信息已經丟失。

您可以在整個操作中使用十進制類型(float,double,BigDecimal),或者在使用這些值之前進行轉換。

float a = 234; 
    float b = 123453344L; 
    float c = a/b; 

int a = 234; 
    long b = 123453344L; 
    float c = (float) a/b; 

我希望這幫助。

0

這是另一種方法來實現此目的:

浮子C = a.floatValue()/ b.floatValue();