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

Carlos H. Cantu listas em warmboot.com.br
Terça Novembro 9 22:06:49 -03 2021


No dialeto 3, numeric e decimal são exatamente iguais, salvo quando
p <= 4, onde aí o numeric é armazenado como smallint e o decimal como
integer.

O decfloat usa codificação decimal, enquanto o float/double usa
binária, então no decfloat não existe o problema do armazenamento "por
aproximação" que existe no float/double.

[]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

GS> Foi o que eu disse, inteiros dum lado de cada ponto, são como bigint de
GS> cada lado.
GS> Ele perguntou o porquê, me concentrei nisso.
GS> No tempo áureos do Interbase 6.0 recém lançado como opensource me deparei
GS> com o numeric(18,4) para simular o money do MSSQL e notei a perda, foi aí
GS> então que me explicaram o DECIMAL, fiz a mudança e não tive mais perdas.
GS> No FB4 incluiram um novo DECFLOAT análogo ao float com o mesmo propósito.
GS> A menos que tenham mudado o NUMERIC desde então, em campo pude ver a perda
GS> de precisão e o corrigi.
GS> []´s

GS> Em ter., 9 de nov. de 2021 às 08:06, Carlos H. Cantu via lista <
GS> lista em firebase.com.br> escreveu:

>> Numeric e decimal no dialeto 3 são tratados internamente como inteiros
>> no Firebird, portanto, não se comportam como ponto flutuante. Nunca
>> haverá perda de precisão no número armazenado x recuperado utilizando
>> esses dois tipos com dialeto 3.
>>
>>




Mais detalhes sobre a lista de discussão lista