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

por que a consulta sum() retorna o resultado com mais pontos decimais?


O float tipo de dados não representa números com dígitos decimais. Ele representa números com binário, de modo que os dígitos binários nos números representam potências de dois, como 16, 8, 4, 2, 1, ½, ¼, ⅛ e assim por diante.

Os números mostrados como “272,7”, “0,55” e assim por diante não são representações precisas dos valores armazenados. Por exemplo, o número mostrado como “272,7” pode ser 272,70001220703125.

As regras usadas para formatar números para saída podem ocultar essas diferenças de você usando menos do que todos os dígitos necessários para mostrar o valor exato.

Quando você adiciona esses números, as diferenças entre os números reais e as representações decimais próximas podem aumentar ou diminuir, dependendo das variações aleatórias entre as diferenças. A soma que você está vendo é um resultado natural dessas adições.