4 AĞUSTOS 2015, Salı
Neden hücreleri(1,1) = 500 * 100 ama 50000*100 taşmasına neden yok't?
Ben sadece basit bir alt oluşturulan ve taşma hata ver. Ancak, bir şey kod ile yanlış görmüyorum, ve 50000*100 500*100'den daha büyük olduğu için çok garip.
sub add()
'This will cause an overflow error
cells(1,1) = 500 * 100
'But this won't
cells(2,2) = 50000 * 100
end sub
CEVAP
4 AĞUSTOS 2015, Salı
Düşünün:
Sub add()
'This works:
Cells(1, 1) = CLng(500) * 100
'as does this:
Cells(2, 2) = 50000 * 100
End Sub
Anlaşılan VBA bu tür sağ tarafta hazır tutmak için yeterince büyük olduğu için ilk ifade için Integer
varsayılan türü tespit edildi. 50000 Long
olarak yorumlar Integer
için çok büyük. CLng
açıkça Long
terfi tetikler.
Bunu Paylaş:
Neden sıralanmamış bir dizi daha hızlı...
Neden bu iki kez (1927) garip bir sonu...
Neden HTML düşün” renk? “chucknorris m...
Neden Google while(1); JSON yanıtların...
Neden char[] şifreler için Dize Java t...