int total = 201;
double Average = total/7;
result should be 28.71428571428571.
我試過浮動,小數和雙爲平均水平,但作爲28爲什麼我不能在c#中看到小數點數字?
int total = 201;
double Average = total/7;
result should be 28.71428571428571.
我試過浮動,小數和雙爲平均水平,但作爲28爲什麼我不能在c#中看到小數點數字?
可以使用D
後綴隱含陳述操作數是雙,例如:
201/7
28
201/7D
28.714285714285715
或者:
double Average = total/7D;
你正在做的整數除法的結果結束了!
201/7
完全是一體的,所以結果不連碰花車,而不是你需要轉換爲雙先:
double Average = (double)total/7.0;
因爲一個int分爲一個int總是一個int。
試試這個:
double average = total/7.0;
如果您使用雙字面值,則不需要演員表(7.0) – Stilgar 2012-03-20 22:10:33
您是對的。固定。 – 2012-03-20 22:12:21
它做整數運算,因爲總的是一個int,7是一個int。如果您將其中任何一個更改爲十進制數,則會得到您要查找的結果。
例如
int total = 201;
double Average = total/7.0;
總數是int而7是int。整數除法的結果是int。它會在加倍後進行投射,但這並不重要,因爲它已被截斷。嘗試:
double average = total/7.0;
7.0是一個雙字面值,int和double除法的結果是double。
,如果你用的是無需要投雙文字(7.0 ) – Stilgar 2012-03-20 22:10:25
@Stilgar,我包括這兩個,因爲這是我通常在代碼中做的。任何人閱讀都會使整個操作非常清晰。再次,那是我的個人風格。 – Matt 2012-03-20 22:20:01