integer constant is too large for "long" type

Previous topic - Next topic

tatakamucher

Pues me da ese error al compilar, las variables las tengo declaradas como globales

global variable#

alguna ayuda???  :|

mentalthink

Puedes poner algo más de código, según he leído por ahí, eso pasa cuando escribes es demasiado grande el contenido de la variable, está intentando pasar un número entero, pero excesivamente grande...

Quizas la tienes redeclarada por en medio del código o usándola como un entero, esto es cosecha mia pero quizás si haces primero variable# y luego por otro sitio le pones% sale ese error de compilador... No lo sé como te digo esto es invento mio...

Ya nos dices a ver si lo solucionamos.

tatakamucher




Code (glbasic) Select


GLOBAL gomis#
GLOBAL tgomis#


IF tgomis# - gomis# > 99999999999 AND tgomis# - gomis# < 1000000000000
INC gomis#,1000000000
ENDIF
IF tgomis# - gomis# > 999999999999
INC gomis#,10000000000
ENDIF





ese es el código D=

mentalthink

prueba a poner al final de los numeros .0 o .1 , según he leído por ahí en teoria el compilador está intentando poner un entero, de hecho si te fijas le estás diciendo que es un numero con coma, pero no hay coma por ningun sitio, quizás al ser un número tan grande hay problemas...

Un truquillo para estas cosas es cuando el compilador te da un error , si pones el error que te da en Google normalmente parece la solución...

Prueba a ver es una cosa que he leído por ahí... a ver.

tatakamucher

se solucionó poniendo al final .0


gracias  :enc: :good:

mentalthink

De nada si yo no tenía mucha idea  =D lo que pasa que leyendo eso que he visto... como te digo los errores del compilador son comunes ha gente que no usa GLbasic, al ser un compilador super común.

tatakamucher

no sabía, yo siempre busco en el foro  =D, pero es buena la info  :good:

hardyx

Si no le pones el .0 te lo coge como número entero, y es demasiado grande para ser un entero.
He probado y también funciona si le pones simplemente un punto al final. :D

Code (glbasic) Select
GLOBAL test# = 99999999999.

mentalthink

 :o Lo del punto es curioso, es como cuanod haces un Inc o un if que cree que hay un true despues, la verdad que va bien el aunto, en C++ me parece que hay que ponerte true por obligación, no?

hardyx

Lo del true en C++ funciona así también, por ejemplo para preguntar if(finjuego==true) se pone if(finjuego). Porque todo lo que sea distinto de cero lo toma como true, y el cero es false.

mentalthink

Ok Hardyx, gracias , me voy a ahorrar unas letrillas en el Arduino...  :good: