[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