J'essaie de définir une valeur entière en tant que telle:
Dim intID as integer
intID = x * 10000
Cela fonctionne bien lorsque x
est égal à 3 ou moins. Mais quand x
est 4, cela me donne l'erreur:
erreur d'exécution 6 Débordement
Je ne comprends pas pourquoi c'est. Je peux régler intID
directement sur 40000 sans aucun problème, il est donc évidemment capable de stocker de grands nombres.
Vous * ne pouvez pas définir un entier vb6 sur 40000 car ils sont signés avec des nombres de 16 bits, ce qui signifie que +32767 est le maximum.
Long
est le type 32 bits.
Toutefois, à titre d'avertissement, si vous deviez:
Dim lngID As Long
lngID = 4 * 10000
Vous obtiendrez toujours un débordement car les nombres littéraux sont définis par défaut sur Integer. Pour corriger cela, il suffit de taper un aussi longtemps avec &
ou de le convertir aussi longtemps avec CLng()
:
Dim lngID As Long
lngID = 4 * 10000&
lngID = 4 * CLng(10000)
Mettre à jour :
dans VB6, le type Integer est un nombre entier compris entre -32768 et 32767.
Vous feriez mieux d'utiliser le type Long
ici.
Dans VB, la plage de variables entières est comprise entre -32 768 et 32 767 Si une valeur de variable est supérieure à cette plage dans votre programme, vous devez déclarer le type de données Long au lieu d'Integer.
Dim intID as integer
intID = x * 10000
Dim lngID AS Long
lngID = x * CLng(10000)
' if 10000
' whatever you want to be