[VBA ] 为何会溢位?

楼主: oycoyc (.......)   2015-12-03 15:46:29
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
请问这是为何?
谢谢!!
作者: lion21 (好歹我也是个夕阳武士)   2015-12-03 16:30:00
超过 32767
作者: gary8520 (元丁)   2015-12-04 00:34:00
会不会是运算顺序的问题,改为(na+1)/2*na呢?
楼主: oycoyc (.......)   2015-12-04 13:08:00
改成Dim na as Long就没问题,我想问的是要如何解释这现象
作者: potawei (我要13亿)   2015-12-04 13:18:00
(181+1)*181=32942>32767 先乘除后加减啊运算顺序的问题...

Links booklink

Contact Us: admin [ a t ] ucptt.com