Encontré un problema al introducir columnas de punto flotante en el esquema de la base de datos MySQL que las comparaciones en valores de coma flotante no siempre arrojan los resultados correctos.Problemas de comparación de punto flotante MySQL
1 - 50.12
2 - 34.57
3 - 12.75
4 - ... (rest a menos de 12,00)
SELECT COUNT(*) FROM `users` WHERE `points` > "12.75"
Esto me devuelve "3".
He leído que las comparaciones de valores de coma flotante en MySQL son una mala idea y el tipo decimal es la mejor opción.
¿Tengo alguna esperanza de seguir adelante con el tipo de letra flotante y hacer que las comparaciones funcionen correctamente?
¿Qué tipos de literales están entre comillas dobles en SQL? – Joey
Desafortunadamente, MySQL permite que las comillas dobles actúen como comillas simples de forma predeterminada. Esta característica se puede desactivar con la opción 'ANSI_QUOTES', que hará que se refieran a los identificadores según el estándar ANSI SQL (como los backticks no estándar en la consulta anterior). – bobince
12.75 es exactamente representable en binario (1100.11), por lo que no veo cómo pasa la prueba "> 12.75". ¿Estás seguro de que no hay otro punto> 12.75 en tu lista? –