作者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/cn.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