ERRO 6 - OVERFLOW
Boa noite amigos,
Estou tendo um probleminha ao fazer uma determinada soma e jogá-la numa variável do tipo string. Cheguei numa determinada operação:
Dim X as integer
Dim Y as Integer
X := tabela.fields("Valor1")
Y := tabela.fields("Valor2")
LabelTotal.caption = cstr(x + y).
Estava funcionando normalmente até a soma dessas variáveis atingir 32.767, após esse valor começou a aparecer o erro.
Fiz um exemplo onde X=20.000 e Y = 20.000, e não estava conseguindo mostrar num campo string essa soma.
Pesquisei no forum e verifiquei que posso fazer da seguinte forma:
Dim Valor As Double
Dim x As Double
Dim y As Double
x = 200& * 100&
y = 200& * 100&
Valor = (x + y)
labelTotal.caption = Valor
Dessa forma deu tudo certinho. Minha dúvida é a seguinte:
Os valores de x e y não são fixos, ou seja, esses valores virão do banco de dados, como faço pra converter esses valores na medida que busco no BD.?
Desde já agradeço.
Estou tendo um probleminha ao fazer uma determinada soma e jogá-la numa variável do tipo string. Cheguei numa determinada operação:
Dim X as integer
Dim Y as Integer
X := tabela.fields("Valor1")
Y := tabela.fields("Valor2")
LabelTotal.caption = cstr(x + y).
Estava funcionando normalmente até a soma dessas variáveis atingir 32.767, após esse valor começou a aparecer o erro.
Fiz um exemplo onde X=20.000 e Y = 20.000, e não estava conseguindo mostrar num campo string essa soma.
Pesquisei no forum e verifiquei que posso fazer da seguinte forma:
Dim Valor As Double
Dim x As Double
Dim y As Double
x = 200& * 100&
y = 200& * 100&
Valor = (x + y)
labelTotal.caption = Valor
Dessa forma deu tudo certinho. Minha dúvida é a seguinte:
Os valores de x e y não são fixos, ou seja, esses valores virão do banco de dados, como faço pra converter esses valores na medida que busco no BD.?
Desde já agradeço.
Caro DIVIED,
Você uso um Integer para declarar suas variável. Os limites do integer são -32.732 a +32.731 (não tenho certeza se são esses números exatos, mas devo ta errando por muito pouco). Se você usar o Long (para números inteiros) ou como fêz usando o Double (para números reais - com casas decimais) terás um limite bem maior de números.
Blz?
Você uso um Integer para declarar suas variável. Os limites do integer são -32.732 a +32.731 (não tenho certeza se são esses números exatos, mas devo ta errando por muito pouco). Se você usar o Long (para números inteiros) ou como fêz usando o Double (para números reais - com casas decimais) terás um limite bem maior de números.
Blz?
DIVIED
O colega JCHARLES tem razão. Faça assim:
O colega JCHARLES tem razão. Faça assim:
Dim X as Long
Dim Y as Long
X := tabela.fields("Valor1")
Y := tabela.fields("Valor2")
LabelTotal.caption = cstr(x + y).
Tópico encerrado , respostas não são mais permitidas