神秘溢出(错误6)
我有一个子例程,立即出于我无法理解的原因而出错。
例程中的第一行尝试将值加载到variables中,并且出错。
UPCTGT = CLng(Sheets("Settings").Range("C3").Value)
单元格C3中的值是3800040260 ..为什么会导致溢出错误?
Long
是一个32位有符号数据types。 您可以用32位(有符号)产生的最大数量是2,147,486,647
TL; DR
32位是指32位的内存
原因2,147,486,647
是可用数量最多的原因是因为:
'// Dec to Binary 2,147,486,647 = 11111111111111111111111111111111 2,147,486,648 = 100000000000000000000000000000000 ^ '// That's a 33rd bit
第33位溢出可用于该数据types的内存量 – 因此溢出错误。
Double
然而,是一个64位有符号整数,有足够的空间给你:)
需要投两倍。 虽然我不确定龙为什么不够用。 我认为数据types有更多的潜力