sql >> Database teknologi >  >> RDS >> Mysql

hvorfor returnerer sum() forespørgsel resultatet med flere decimaler?

float datatypen repræsenterer ikke tal med decimaltal. Det repræsenterer tal med binære, så de binære cifre i tallene repræsenterer to potenser, såsom 16, 8, 4, 2, 1, ½, ¼, ⅛, og så videre.

Tallene vist som "272,7", "0,55" og så videre er ikke nøjagtige repræsentationer af de lagrede værdier. For eksempel kan tallet vist som "272.7" faktisk være 272.70001220703125.

Reglerne, der bruges til at formatere tal til output, kan skjule disse forskelle for dig ved at bruge færre end alle de nødvendige cifre for at vise den nøjagtige værdi.

Når du tilføjer disse tal, kan forskellene mellem de faktiske tal og de nærliggende decimalrepræsentationer vokse eller formindskes, afhængigt af tilfældige variationer mellem forskellene. Summen, du ser, er et naturligt resultat af disse tilføjelser.




  1. Tilføj fremmednøgleforhold mellem to databaser

  2. Hvad kræver dette JavaScript?

  3. Oracle Concurrent Manager – CP Analyzer til E-Business Suite

  4. Hvad er en formatstreng i SQL Server?