sql >> Database >  >> RDS >> Mysql

Waarom retourneert MySQL sommige floats in wetenschappelijke notatie, maar andere niet?

Er lijkt een limiet van zes cijfers te zijn voor wat wordt weergegeven in de CLI (en waarschijnlijk ook elders). Het voorbeeld dat je hebt is 1.12305e-06, wat 0.00000112305 is, wat zou worden weergegeven als 0.000000 - hoewel het duidelijk niet nul is.

Als je aandringt op het gebruik van floats of doubles, zul je ze moeten forceren met iets als round(columnName,5) om de weergave in een decimale waarde te forceren. Schakel anders misschien over naar een decimaal gegevenstype.

Van http://dev.mysql.com/ doc/refman/5.0/en/floating-point-types.html

Omdat drijvende-kommawaarden bij benadering zijn en niet worden opgeslagen als exacte waarden, kunnen pogingen om ze als exact te behandelen in vergelijkingen tot problemen leiden. Ze zijn ook onderhevig aan platform- of implementatieafhankelijkheden. Voor meer informatie, zie Paragraaf C.5.5.8, “Problemen met drijvende-kommawaarden

Zie ook deze thread op de mysql-forums over dit exacte probleem.



  1. MySQL-update, lege velden overslaan met PDO

  2. Selecteer een datum uit mijn database zonder seconden met PHP MySql

  3. MySQL in outfile-opmaak

  4. Vreemde SQLException:kolom niet gevonden