sql >> Database teknologi >  >> RDS >> Mysql

MySQL større end eller lig med operatør ignorerer sin eller lig med forpligtelse

husk at float er en mangelfuld datatype, når det kommer til præcision. Hvis du repræsenterer 12 som float får du 11.99999999999998 eller noget.

'38.03' kan konverteres til decimal eller anden datatype, der er mere præcis (afhængigt af RDBMS, jeg er generelt her), og den vil afvige fra den flydende værdi.

float er 32 bit, lav præcision. Dobbelt fungerer meget bedre, da det er 64 bit datatype. Decimaldatatypen i nogle systemer er 128 bit numeriske datatyper til lagring af meget præcise numeriske værdier og bruges normalt til at angive penge.

Og spring over vanen med at sammenligne med = operator, af float værdier. Floats bruges til omtrentlige og hurtige beregninger, og kun sammenligning med et interval er acceptabel for at kontrollere værdien af ​​en float . Det er gyldigt for stort set hvert enkelt system.



  1. Python MySQLdb-opdateringsforespørgsel mislykkes

  2. Literal matcher ikke formatstreng for Oracle SQL to_date på en strengkolonne

  3. Fjern simple HTML-tags fra String i Oracle via RegExp, forklaring nødvendig

  4. Lagring af mikrosekunder i MySQL:hvilken løsning?