[firebase-br] Resultado de divisoes

Edvaldo (bol) evgomes em bol.com.br
Seg Nov 8 12:35:02 -03 2004


Ok Otto... valeu.

Ainda bem q utilizo dialeto 1.

Edvaldo

----- Original Message -----
From: "Otto" <ottofuch em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, November 05, 2004 8:27 PM
Subject: Re: [firebase-br] Resultado de divisoes


> Segundo o livro da Helen, depende do dialeto.
> No dialeto 1
> SELECT  1/3 AS RESULT FROM RDB$DATABASE
> resulta em 0.333333333333333
> Já no dialeto 3 resulta em 0 (zero).
>
> Isto tem algo a ver com a escala. No dialeto 1, o Firebird soma a escala
dos
> dois operandos para determinar a escala do resultado (quociente), tendo o
> quociente uma precisão de 18. No dialeto 3, em conformidade com o SQL-92.
os
> inteiros (integer) tem uma escala de 0 (zero) "que, para fins de
> consistência requer que o resultado (quociente)  de qualquer operação
> inteiro/inteiro esteja em conformidade com as regras de escalas (scaling
> rules) de numéricos fixos (fixed numerics) e produzam um inteiro".
>
> Assim, ambos tem razão, um para o dialeto 1, e outro, para o dialeto 3. E
> serve como alerta que mudanças de dialetos podem produzir surpresas.
>
> 100+
> Otto
>
>
> ----- Original Message -----
> From: "Edvaldo (bol)" <evgomes em bol.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, November 05, 2004 12:51 PM
> Subject: Re: [firebase-br] Resultado de divisoes
>
>
> Não tem nada a ver isto que vocês estão falando "divisão de integer por
> integer dá integer", depende da variável que vai receber o resultado.
Neste
> caso está sendo feito no SELECT, então o resultado de 6/5 é 1,2, igual a
> qualquer outra calculadora normal.
>
> Edvaldo
>
> ----- Original Message -----
> From: "eduardo" <eduardo em icontroller.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Thursday, November 04, 2004 3:39 PM
> Subject: Re: [firebase-br] Resultado de divisoes
>
>
> > Oi Camillo
> >
> > Isto é porque o resultado da operação entre integers é integer.
> > Neste caso, não adianta dar um CAST no resultado porque ele já não
> > contém decimais (é integer)
> > Para forçar um resultado Float vc deve forçar que um dos dois, dividendo
> > ou divisor seja float, como:
> > 6.0/5
> > ou CAST( 6 AS NUMERIC(10,4) )/5
> >
> > Boa Sorte ,
> > Eduardo
> >
> > LISTA wrote:
> >
> > >Porque quando executo o seguinte comando o resultado é 1, ou seja, so a
> parte inteira da divisão ? Como faço para obter o resultado exato da
divisão
> dentro de um SP?
> > >
> > >SELECT cast(6/5 as real)  FROM RDB$DATABASE
> > >
> > >Percebi isso quando fiz uma SP e o resultado estava sempre errado,
> fazendo o debug verifiquei que o erro era decorrente da situação acima.
> > >
> > >Desdee ja agradeço a todos
> > >
> > >Camillo
> > >______________________________________________
> > >FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > >Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > >
> > >
> > >
> > >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> >
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br





Mais detalhes sobre a lista de discussão lista