[firebase-br] Função MOD

Eduardo Bahiense eduardo em icontroller.com.br
Dom Ago 3 22:44:34 -03 2008


Olá Murilo

No FB 2.0, mod só é existe em udf. A declaração da função espera dois 
parametros integer

DECLARE EXTERNAL FUNCTION mod
	INTEGER, INTEGER
	RETURNS DOUBLE PRECISION BY VALUE
	ENTRY_POINT 'IB_UDF_mod' MODULE_NAME 'ib_udf';

Assim, parece que quando você pede mod(5.0, 4.2), isso é convertido em 
mod(5, 4)

Para conseguir o resultado desejado, tive que multiplicar tudo por 10 e 
dividir por 10

select mod(50, 42)/10 as m from rdb$database

matematicamente falando, não importa por quanto você multiplica e 
divide, vai dar a mesma coisa. Então, eu multiplicaria logo por 100.000 
para ficar bem genérico.

select mod(500000, 420000)/100000 as m from rdb$database

Espero ter ajudado


Eduardo

Murilo Garcia Bento escreveu:
> Estou com o FB 2.5 Alpha, alguém que tenha o 2.1.1, poderia me dizer o que 
> retorna o seguinte select:
> 
> select mod(5.0, 4.2) from rdb$database
> 
> Pois mesmo, utilizando o cast em TUDO, cada número e geral, ele retorna 1, 
> sempre, não sei se é viagem minha em algum ponto, mas fazendo a mesma conta 
> pela calculador do Windows, ele retorna 0,8 (que seria o correto). Isso é um 
> BUG, erro meu ou a função só retornar a parte inteira?
> 
> Grato. 
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista