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

Subtraktion af to lige store værdier er ikke nul i mysql

Det er kendt som en omtrentlig præcision . Dette er ikke en fejl, flydende komma datatyper er beregnet til at fungere på denne måde. De kan ikke gemme data præcist. Så hvis det betyder noget, bør du bruge fastpunktsdatatyper, såsom DECIMAL i MySQL.

På den anden side kan du altid bruge præcisionsdelta til sammenligninger for flydende komma, som:

SELECT 
  `foo`,
  `bar`,
  IF(ABS(`foo`-`bar`)<1E-13, 0, `foo`-`bar`) AS zero_compared
FROM
 t

som du kan se, er delta her 1E-13 (normalt vil det være nok)



  1. Tabel Dato kolonne sammenligning med en genereret datoliste - MYSQL

  2. Hvordan forbinder jeg mySQL i mit Android-projekt?

  3. Hvordan trunkerer du alle tabeller i en database ved hjælp af TSQL?

  4. Får spørgsmålstegn, når du indsætter hebraiske tegn i en MySQL-tabel