sql >> Databasteknik >  >> RDS >> Mysql

varför returnerar sum()-frågan resultat med fler decimaler?

float datatypen representerar inte siffror med decimalsiffror. Den representerar tal med binär, så de binära siffrorna i talen representerar två potenser som 16, 8, 4, 2, 1, ½, ¼, ⅛ och så vidare.

Siffrorna som visas som "272.7", "0.55" och så vidare är inte korrekta representationer av de lagrade värdena. Till exempel kan numret som visas som "272.7" faktiskt vara 272.70001220703125.

Reglerna som används för att formatera siffror för utdata kan dölja dessa skillnader för dig genom att använda färre än alla siffror som behövs för att visa det exakta värdet.

När du lägger till dessa siffror kan skillnaderna mellan de faktiska talen och de närliggande decimalrepresentationerna växa eller minska, beroende på slumpmässiga variationer mellan skillnaderna. Summan du ser är ett naturligt resultat av dessa tillägg.




  1. Node MySQL escape LIKE-sats

  2. Anslut till MySql-databasen genom xamarin

  3. MySQL-förfrågan/klausulexekveringsorder

  4. JSP-kodning medan icke-engelsk text infogas i MySQL-databasen