2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
沒有區(qū)別(*) - 你被困在一個(gè)無休止的 while 循環(huán)中,無法擺脫它。
(*)“離開”循環(huán)的唯一方法是例外......如果你x++
和x
類型是......雙倍需要更長(zhǎng)的時(shí)間才能溢出double
......

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
評(píng)論中的結(jié)果及其類型:
var a = 2; //int
var b = 2.0; //double
var c = 2d; //double
var d = 2f; //float (alias of System.Single)
var e = 2m; //decimal
var f = 2l; //long
var g = 2ul; //ulong
var h = 2.0m; //decimal
var i = 2.0f; //float
var t = 1 / 2.0; //double
var u = 1 / 2; //int!
var v = 1 / ((6 - 1) * 2); //int!
var w = 1 / 2 + 6 / 2.0 //int + double = 0 + 3 = 4
查看您的樣品:
由于 double 參與所有公式,結(jié)果將是與 sum 類型匹配的 double 并且將根據(jù)類型正確計(jì)算
你明確地將 int 轉(zhuǎn)換為 double - 看 #1
2.00 是雙重的 - 看 #1
因此,所有樣本將以相同的方式計(jì)算總和,
除了 int 類型會(huì)在無限循環(huán)中提前溢出
- 2 回答
- 0 關(guān)注
- 215 瀏覽
添加回答
舉報(bào)