為什麼乘法運算會產生不同的結果?
在提供的程式碼中,結果的差異是由於存在或不存在字母「L」附加到整數文字上。要理解這種差異,深入研究所涉及的資料類型非常重要:
分配給 oneYearWithL 的值是一個 long,由「L」後綴表示。與整數相比,長整型可以表示更大範圍的值。在這種情況下,365 被認為是 long,並且將其與前面的整數值相乘的結果也是 long。
另一方面,oneYearWithoutL 被分配了一個整數值。整數值相乘得到一個整數。但是,此表達式的值超出了最大 32 位元整數限制 (2^31 - 1)。因此,在賦值過程中,它會被截斷以適合有效的整數範圍,從而導致計算不正確。
為了進一步說明這一點,請考慮以下輸出:
輸出:
這表示當包含「L」時,結果在long 資料類型的範圍內,因此是準確的。但是當省略“L”時,結果會被截斷為整數,從而導致值不正確。
要修正此問題並獲得正確的結果,oneYearWithoutL 中的乘法表達式應明確轉換為長整型(long) 或數位文字應加上「L」後綴,例如oneYearWithoutL = 1000*60* 60*24*365L。
以上是為什麼將'L”加到整數文字會改變乘法結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!