2 回答

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

TA貢獻1875條經驗 獲得超5個贊
評論中的結果及其類型:
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 參與所有公式,結果將是與 sum 類型匹配的 double 并且將根據類型正確計算
你明確地將 int 轉換為 double - 看 #1
2.00 是雙重的 - 看 #1
因此,所有樣本將以相同的方式計算總和,
除了 int 類型會在無限循環中提前溢出
- 2 回答
- 0 關注
- 207 瀏覽
添加回答
舉報