[firebase-br] Conversão cast com alteração de valor

Carlos H. Cantu listas em warmboot.com.br
Segunda Novembro 15 17:57:06 -03 2021


Qual a versão do seu IBExpert? O problema foi corrigido na versão
2021.11.14

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

SN> No meu IBExpert deu

SN> VLRORIGINAL VLRCONVERTIDO
SN> 1485.45            1485,4500000000003

SN> Em seg., 15 de nov. de 2021 às 09:44, Carlos H. Cantu via lista <
SN> lista em firebase.com.br> escreveu:

>> A atualização do IBExpert lançada ontem resolveu o problema.
>>
>> []s
>> Carlos H. Cantu
>> eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php
>> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>>
>> G> SET SQL DIALECT 3;
>> G> Este é o único dialeto que uso.
>> G> Será que o processo de conversão no IBExpert pode vir a usar outro
>> dialeto
>> G> diferente ?
>> G> Estes são os resultados usando o isql (arquivo anexo)
>>
>> G> Em ter., 9 de nov. de 2021 às 16:07, Carlos H. Cantu via lista <
>> G> lista em firebase.com.br> escreveu:
>>
>> >> Deve estar com dialeto 1, aí numeric (18,13) é armazenado internamente
>> >> com double precision (que garante precisão de 15 dígitos) e não como
>> >> bigint!
>> >>
>> >> No dialeto 3 não tem "sujeira".
>> >>
>> >> []s
>> >> Carlos H. Cantu
>> >> eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php
>> >> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>> >>
>> >> PGvl> Boa tarde,
>> >>
>> >> PGvl> Firebird 2.5
>> >> PGvl> ===
>> >> PGvl> SELECT '123456,123' ORIGINAL,
>> >> PGvl> CAST('123456.123' AS NUMERIC(18,13)) CONVERTIDO
>> >> PGvl> FROM RDB$DATABASE;
>> >> PGvl> ===
>> >> PGvl> ISQL
>> >> PGvl> ORIGINAL    CONVERTIDO
>> >> PGvl> ==========  =====================
>> >> PGvl> 123456,123  123456.1230000000000
>> >>
>> >> PGvl> =================================
>> >> PGvl> IBEXPERT
>> >> PGvl> ORIGINAL    CONVERTIDO
>> >> PGvl> 123456,123  123456,1230000000210
>> >> PGvl> =================================
>> >>
>> >> PGvl> No IBExpert observamos o resíduo (0000000210),
>> >> PGvl> fez o CAST usando Float.
>> >>
>> >> PGvl> =======
>> >> PGvl> Float
>> >> PGvl> https://www.h-schmidt.net/FloatConverter/IEEE754.html
>> >> PGvl>     0,3=0,300000011920928955078125
>> >> PGvl> 0,1+0,2=0,300000004470348358154296
>> >> PGvl> 0,1+0,2=0,3 FALSE
>> >> PGvl> =======
>> >> PGvl> --
>> >> PGvl> Paulo Geloramo
>> >>
>> >> PGvl> Em sex., 5 de nov. de 2021 às 21:17, GutembergAdv via lista
>> >> PGvl> <lista em firebase.com.br> escreveu:
>> >> >>
>> >> >> /* Alguém sabe me dizer porque este cast gera dígitos significativos
>> no
>> >> >> final do número? */
>> >> >> /* Neste caso foi o valor 3. Também preciso saber como evitar isso. É
>> >> >> necessário ter exatidão no valor */
>> >> >> /* Firebird 3 */
>> >> >>
>> >> >> select
>> >> >>  '1485.45' VlrOriginal,
>> >> >>  cast('1485.45' as numeric(18,13)) VlrConvertido
>> >> >> from rdb$database
>> >> >> ______________________________________________
>> >> >> 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://www.firebase.com.br/pesquisa_lista.html
>> >>
>> >> PGvl> ______________________________________________
>> >> PGvl> FireBase-BR (www.firebase.com.br) - Hospedado em
>> www.locador.com.br
>> >> PGvl> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> >> PGvl> http://www.firebase.com.br/fb/artigo.php?id=1107
>> >> PGvl> Para consultar mensagens antigas:
>> >> PGvl> http://www.firebase.com.br/pesquisa_lista.html
>> >>
>> >>
>> >> ______________________________________________
>> >> 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://www.firebase.com.br/pesquisa_lista.html
>> >>
>>
>>
>> ______________________________________________
>> 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://www.firebase.com.br/pesquisa_lista.html
>>





Mais detalhes sobre a lista de discussão lista