sql >> Databasteknik >  >> RDS >> Mysql

MySQL större än eller lika med operatören ignorerar sin eller lika med skyldighet

kom ihåg att float är en felaktig datatyp när det gäller precision. Om du representerar 12 som float får du 11.99999999999998 eller något.

'38.03' kan konverteras till decimal eller annan datatyp som är mer exakt (beroende på RDBMS, jag är allmän här), och det kommer att skilja sig från flytvärdet.

float är 32 bitar, låg precision. Dubbel fungerar mycket bättre, eftersom det är 64-bitars datatyp. Decimaldatatyp i vissa system är 128 bitars numeriska datatyper för lagring av mycket exakta numeriska värden, och används vanligtvis för att benämna pengar.

Och hoppa över vanan att jämföra med = operator, av float värden. Floats används för ungefärliga och snabba beräkningar, och endast jämförelse med ett intervall är acceptabelt för att kontrollera värdet på en float . Det är giltigt för i princip varje enskilt system.



  1. Utmaningslösningar för nummerseriegenerator – del 2

  2. Varför skulle jag få ett dubblettnyckelfel när jag uppdaterar en rad?

  3. MySQL 8 Beräknar genomsnitt genom partitionering efter datum

  4. Mysql date funktion fungerar inte för mindre än