作者oycoyc (.......)
看板Visual_Basic
標題[VBA ] 為何會溢位?
時間Thu Dec 3 15:46:29 2015
Dim na As Integer
na = Cells(2, 2)
Label1.Caption = (na + 1) * na / 2
如果是上面這樣,當cells(2,2)大於180時會出現溢位錯誤。
但是如果改成以下,不透過na就沒問題
Label1.Caption = (Cells(2, 2) + 1) * Cells(2, 2) / 2
請問這是為何?
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.176.163
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1449128791.A.6FC.html
1F:推 lion21: 超過 32767 12/03 16:30
2F:推 gary8520: 會不會是運算順序的問題,改為(na+1)/2*na呢? 12/04 00:34
3F:→ oycoyc: 改成Dim na as Long就沒問題,我想問的是要如何解釋這現象 12/04 13:08
4F:→ potawei: (181+1)*181=32942>32767 先乘除後加減啊 12/04 13:18
5F:→ potawei: 運算順序的問題... 12/04 13:19