Cálculo de expressão
Olá! Estou tentando ´enganar´ o IB 6 para fazer um cálculo para mim.
Estou colocando uma SQL do tipo: Select 1/2 from Tabela. No BDE ele retorna 0.5 corretamente, mas o IB 6 retorna somente a parte inteira. Por que isso ocorre? O Firebird também tem o mesmo problema?
Estou colocando uma SQL do tipo: Select 1/2 from Tabela. No BDE ele retorna 0.5 corretamente, mas o IB 6 retorna somente a parte inteira. Por que isso ocorre? O Firebird também tem o mesmo problema?
Delphi32
Curtidas 0
Respostas
Afarias
04/02/2004
|Estou colocando uma SQL do tipo: Select 1/2 from Tabela. No BDE ele
|retorna 0.5 corretamente, mas o IB 6 retorna somente a parte inteira.
|Por que isso ocorre?
Isto ocorre pq ambos os números (numerador e denominador) são inteiros -- então o IB entende q vc deseja fazer uma operação de divisão inteira! Sendo assim, nada mais correto q o resultado ser 0
Mostre para o IB que vc deseja uma operação de divisão de ponto-flutuante, fazendo::
select 1.0/2.0 from tabela
ou ainda
select 1.0/2 from tabela ou select 1/2.0 from tabela
quanto a funcionar com BDE não conta!! O BDE é q te engana!!! hahahaha... na verdade no BDE é q *não* funciona (pelo menos não como deveria) ;)
T+
|retorna 0.5 corretamente, mas o IB 6 retorna somente a parte inteira.
|Por que isso ocorre?
Isto ocorre pq ambos os números (numerador e denominador) são inteiros -- então o IB entende q vc deseja fazer uma operação de divisão inteira! Sendo assim, nada mais correto q o resultado ser 0
Mostre para o IB que vc deseja uma operação de divisão de ponto-flutuante, fazendo::
select 1.0/2.0 from tabela
ou ainda
select 1.0/2 from tabela ou select 1/2.0 from tabela
quanto a funcionar com BDE não conta!! O BDE é q te engana!!! hahahaha... na verdade no BDE é q *não* funciona (pelo menos não como deveria) ;)
T+
GOSTEI 0