[firebase-br] Hexadecimal

Cyber Guido cyberguido em gmail.com
Seg Out 3 09:51:01 -03 2016


Ricardo,

Note que entre 2,06 e 2,05 existe um número infinito de valores que 
devem ser representados por um número finito de bits. Esta é a causa dos 
erros de arredondamento, conforme o documento em docs.oracle.com explica 
(tradução imprecisa do Google tradutor, mas suficiente para entender o 
problema):

"Espremendo infinitamente muitos números reais em um número finito de 
bits requer uma representação aproximada. Embora haja um número infinito 
de números inteiros, na maioria dos programas o resultado de cálculos 
inteiros podem ser armazenados em 32 bits. Em contraste, dado qualquer 
número fixo de bits, a maioria dos cálculos com números reais vai 
produzir quantidades que não pode ser exactamente representados com que 
muitos bits. Portanto, o resultado de um cálculo de ponto flutuante deve 
muitas vezes ser arredondados, a fim de se adaptar à sua representação 
finita. Este erro de arredondamento é a característica do ponto 
flutuante computação."

Cordialmente,
Carlos

On 03/10/2016 08:42, Ricardo Rodrigues .'. wrote:
> Exemplo do que ocorre,
>
> select 2.06 - 2.05
>    from rdb$relations
>
> resultado : 0,0100000000000002
>
> Em 30 de setembro de 2016 18:22, Cyber Guido <cyberguido em gmail.com>
> escreveu:
>
>> Ricardo,
>>
>> Aritmética de ponto flutuante é imprecisa porque o formato de
>> armazenamento, usado internamente pelos computadores, não consegue
>> armazená-los de forma acurada.
>>
>> Se precisão é imperativa, use os formatos de ponto fixo, numeric ou
>> decimal.
>>
>> Veja também as páginas abaixo:
>>
>> http://floating-point-gui.de/
>>
>> http://stackoverflow.com/questions/2100490/floating-point-
>> inaccuracy-examples
>>
>> http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
>>
>> Cordialmente,
>> Carlos
>>
>>
>> On 30/09/2016 14:45, Ricardo Rodrigues .'. wrote:
>>
>>> Boa tarde pessoal, estou tendo um problema que nunca tinha ocorrido no meu
>>> banco.
>>>
>>> Eu tenho dois campos double precision, e eu não seu o pq em algum momento
>>> que foi feito algum calculo, o resultado desses campos estão menor que
>>> zero, está mostra uma quantidade muito louca em hexidecimal, alguma luz ?
>>>
>>>
>>> Desde já agradeço
>>> ______________________________________________
>>> 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/pes
>>> quisa_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/pes
>> quisa_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