我收到一個異常說「算術運算導致溢出」,但我不知道爲什麼。算術運算導致溢出 - int64範圍內的結果
我試圖做下列計算
myvalue的= 2 * 11 * 37 * 41 * 41 * 41 * 41
其等於2300169454。我已經聲明瞭myvalue變量爲Long,並且也嘗試了Int64,所以這應該在範圍內。有什麼其他原因導致這個異常?
感謝
我收到一個異常說「算術運算導致溢出」,但我不知道爲什麼。算術運算導致溢出 - int64範圍內的結果
我試圖做下列計算
myvalue的= 2 * 11 * 37 * 41 * 41 * 41 * 41
其等於2300169454。我已經聲明瞭myvalue變量爲Long,並且也嘗試了Int64,所以這應該在範圍內。有什麼其他原因導致這個異常?
感謝
你已經宣佈分配作爲long
的目標,但它看起來像你在執行操作中int
算術。當所有算術完成爲int
時,它確實是溢出。如果您需要以64位執行算術運算,則需要操作數爲long
值 - 或者至少其中一些值。 (很難說如果沒有看到真實的代碼,到底在哪裏改變東西。)
當你得到那個錯誤時,你使用的所有值都是int
值(或更小)。
如果只是用在計算一個long
值,結果是long
值並沒有溢出:
long myvalue = 2 * 11 * 37 * 41 * 41L * 41 * 41;
謝謝!這正是問題,操作數被聲明爲int。欣賞快速的答案,另一個.net的教訓! –