2013-10-26 62 views
0

今天我帶着一個問題,不能夠弄清楚什麼是這個簡單的語句問題意外的雙重價值

我試過

double d =1/4; 

預期ANS對我來說是0.25但在現實中ans是0.0爲什麼這樣?

而且因爲你所做的是在這裏整數除法我們應該怎麼做,如果語句是整型變量而言這樣

double a =(a-b)/(d+e); 

回答

6

1/4總是給你0作爲結果,無論你分配哪種類型。

.NET有3種類型的劃分。從7.7.2 Division operator

  • 整數除法
  • 浮點除法
  • 小數除法

整數除法一部分;

劃分舍入結果趨向於零,而 絕對值的結果是最大的可能整數小於所述兩個操作數的商數的 絕對值。

如果您想要0.25作爲結果,您應該將其中一個值定義爲浮點。

您可以使用其中之一;

double d = 1d/4d; 
double d = 1d/4; 
double d = 1/4d; 

而且我們應該怎樣做,如果語句是整型變量 這樣

雙A =(A-B)/(d + E)的條款;

我假設你abde是整數,你應該使用這些再一個;

double a = (double)(a-b)/(double)(d+e); 
double a = (a-b)/(double)(d+e); 
double a = (double)(a-b)/(d+e); 
+0

我們應該做些什麼當w在這樣的雙A =(AB)整型變量的條件語句/(d + c) –

+0

@HotCoolStud我更新了我的答案。看一看。 –

2
double d =1d/4; 

應該工作。 如果您未指定數字的類型,則將其視爲整數。整數1/4將爲零。

+0

我們應該怎麼做,如果w有像這樣的整數變量的語句double a =(a-b)/(d + c); –

+0

投下至少一面加倍? – MichaC

1

/操作員(msdn

當你把兩個整數,結果始終是整數。例如,對於 示例,7/3的結果爲2.要確定剩餘的7/ 3,請使用餘數運算符(%)。要獲得商數作爲合理的 數字或分數,請給出分紅或除數類型浮點數或類型 雙數。如果您通過在 小數點的右側輸入一位數字表示股利 或除數作爲小數,您可以隱式指定類型。

試試這個:

double d = 1.0/4.0; 
1

使用此:

double d = (double) 1/4;