Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Armazenando dados estatísticos, preciso de DECIMAL, FLOAT ou DOUBLE?


Este link faz um bom trabalho de explicar o que você está procurando. Aqui está o que diz:

Todos esses três tipos podem ser especificados pelos seguintes parâmetros (tamanho, d). Onde size é o tamanho total da String e d representa a precisão. Por exemplo, para armazenar um número como 1234.567, você definirá o tipo de dados como DOUBLE(7, 3), onde 7 é o número total de dígitos e 3 é o número de dígitos após o ponto decimal.

FLOAT e DOUBLE, ambos representam números de ponto flutuante. Um FLOAT é para precisão simples, enquanto um DOUBLE é para números de precisão dupla. Uma precisão de 0 a 23 resulta em uma coluna FLOAT de precisão simples de 4 bytes. Uma precisão de 24 a 53 resulta em uma coluna DOUBLE de precisão dupla de 8 bytes. FLOAT tem precisão de aproximadamente 7 casas decimais e DOUBLE até 14.

A declaração e o funcionamento do Decimal são semelhantes ao Double. Mas há uma grande diferença entre valores de ponto flutuante e valores decimais (numéricos). Usamos o tipo de dados DECIMAL para armazenar valores numéricos exatos, onde não queremos precisão, mas valores exatos e precisos. Um tipo Decimal pode armazenar um máximo de 65 dígitos, com 30 dígitos após o ponto decimal.

Então, para o valor mais preciso e preciso, Decimal seria a melhor opção.