Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dlaczego MySQL zwraca niektóre zmienne w notacji naukowej, a inne nie?

Wydaje się, że istnieje sześciocyfrowy limit tego, co jest pokazywane w CLI (i prawdopodobnie gdzie indziej). Twój przykład to 1.12305e-06, który jest 0.00000112305, co byłoby wyświetlane jako 0,00000 - choć wyraźnie nie jest to zero.

Jeśli nalegasz na używanie pływaków lub podwajań, będziesz musiał je wymusić za pomocą czegoś takiego jak round(columnName,5) aby wymusić wyświetlanie wartości dziesiętnych. W przeciwnym razie może przełączyć się na typ danych dziesiętnych.

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

Ponieważ wartości zmiennoprzecinkowe są przybliżone i nie są przechowywane jako wartości dokładne, próby traktowania ich jako dokładnych w porównaniach mogą prowadzić do problemów. Podlegają również zależnościom platformy lub implementacji. Więcej informacji można znaleźć w sekcji C.5.5.8, „Problemy z wartościami zmiennoprzecinkowymi

Zobacz także ten wątek na forach mysql o tym konkretnym problemie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL SELECT Zduplikowane wiersze z bazy danych OpenCarts

  2. Zapytanie Mysql:zmniejsz wartość o 1

  3. porównywanie dat według miesiąca i roku w mysql

  4. Używanie klauzuli IN MySQL jako all inclusive (AND zamiast OR)

  5. Dlaczego otrzymuję błąd MySQL #1312 podczas korzystania z prostej procedury składowanej?