Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum gibt MySQL einige Gleitkommazahlen in wissenschaftlicher Schreibweise zurück, andere jedoch nicht?

Es scheint eine sechsstellige Grenze für das zu geben, was aus der CLI (und wahrscheinlich auch anderswo) angezeigt wird. Das Beispiel, das Sie haben, ist 1,12305e-06, was 0,00000112305 ist, was als 0,00000 angezeigt würde - obwohl es eindeutig nicht Null ist.

Wenn Sie darauf bestehen, Floats oder Doubles zu verwenden, müssen Sie sie mit etwas wie round(columnName,5) erzwingen um die Anzeige in einem Dezimalwert zu erzwingen. Andernfalls vielleicht auf einen dezimalen Datentyp umstellen.

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

Da Gleitkommawerte Näherungswerte sind und nicht als exakte Werte gespeichert werden, können Versuche, sie in Vergleichen als exakt zu behandeln, zu Problemen führen. Sie unterliegen auch Plattform- oder Implementierungsabhängigkeiten. Weitere Informationen finden Sie in Abschnitt C.5.5.8, „Probleme mit Fließkommawerten

Siehe auch diesen Thread in den mysql-Foren über genau dieses Problem.