sql >> Database >  >> RDS >> Mysql

MySQL groter dan of gelijk aan operator negeert zijn of gelijk aan verplichting

onthoud dat float is een gebrekkig gegevenstype als het gaat om precisie. Als u 12 vertegenwoordigt als float krijg je 11.99999999999998 of zoiets.

'38.03' kan worden geconverteerd naar decimaal, of een ander gegevenstype dat nauwkeuriger is (afhankelijk van RDBMS, ik ben hier algemeen), en het zal verschillen van de float-waarde.

float is 32 bit, lage precisie. Double werkt een stuk beter, omdat het een 64-bits gegevenstype is. Decimaal gegevenstype in sommige systemen zijn 128-bits numerieke gegevenstypen voor het opslaan van zeer nauwkeurige numerieke waarden, en worden meestal gebruikt om geld aan te duiden.

En sla de gewoonte over om te vergelijken met de = operator, van float waarden. Floats worden gebruikt voor benaderende en snelle berekeningen, en alleen vergelijking met een bereik is acceptabel voor het controleren van de waarde van een float . Dat geldt in principe voor elk afzonderlijk systeem.



  1. Selecteer laatste rij in MySQL

  2. SELECT subquery met WHERE voorwaarde in Yii2 find() / QueryBuilder

  3. mysql check-sortering van een tabel

  4. hoe mysql-query te optimaliseren als ik te veel OR-operators in mijn query heb?