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

MySQL większy lub równy operatorowi ignoruje swoje lub równe zobowiązanie

pamiętaj, że float jest wadliwym typem danych, jeśli chodzi o precyzję. Jeśli reprezentujesz 12 jako float otrzymasz 11.99999999999998 czy coś.

'38.03' można przekonwertować na dziesiętny lub inny typ danych, który jest bardziej precyzyjny (w zależności od RDBMS, jestem tutaj ogólny) i będzie się różnić od wartości zmiennoprzecinkowej.

float to 32 bity, niska precyzja. Double działa o wiele lepiej, będąc 64-bitowym typem danych. Typ danych dziesiętnych w niektórych systemach to 128-bitowe typy danych numerycznych do przechowywania bardzo precyzyjnych wartości liczbowych i są zwykle używane do denominacji pieniędzy.

I pomiń zwyczaj porównywania za pomocą = operator float wartości. Liczby zmiennoprzecinkowe są używane do przybliżonych i szybkich obliczeń, a tylko porównanie z zakresem jest dopuszczalne do sprawdzenia wartości float . Dotyczy to w zasadzie każdego pojedynczego systemu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konfiguracja Solr DataImportHandler

  2. Jak usunąć zduplikowane elementy w MySQL z zestawem danych składającym się z 20 milionów wierszy?

  3. Jak i kiedy poprawnie używać SLEEP() w MySQL?

  4. Dlaczego uniksowy czas MySQL zatrzymuje się przed 32-bitowym limitem liczby całkowitej bez znaku?

  5. Jak dopasować adres IP w mysql?