[firebase-br] Conversão cast com alteração de valor
Carlos H. Cantu
listas em warmboot.com.br
Terça Novembro 9 16:07:33 -03 2021
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
Mais detalhes sobre a lista de discussão lista