Eu sei que esse numeric
é um tipo de dado "exato", que representa números com a maior precisão possível para que não haja erros de ponto flutuante, como nos tipos de dados float
ou real
.
Mas e quanto a numeric(p,s)
? Ele deve aproximar um número por causa da escala fixa, mas ele tem imprecisões de ponto flutuante ou é “seguro”? Não consegui encontrar nenhuma informação sobre ele. Talvez seja óbvio, mas eu gostaria de entender melhor esse aspecto.
numeric(p,s)
é preciso. É um “decimal codificado em binário”, ou seja, os dígitos são armazenados como estão. Veja a definição emsrc/backend/utils/adt/numeric.c
: