Hast Du schon mal ROUND() probiert?
CREATE TABLE test_dec (
id INT NOT NULL,
wert_float FLOAT NOT NULL,
wert_dec DEC(10,2) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO test_dec VALUES
(1, 10, 10),
(2, 20.11, 20.11);
SELECT *
FROM test_dec
WHERE ROUND(wert_float, 2) = 10;
+----+------------+----------+
| id | wert_float | wert_dec |
+----+------------+----------+
| 1 | 10 | 10.00 |
+----+------------+----------+
1 row in set (0.00 sec)
mysql>
SELECT *
FROM test_dec
WHERE ROUND(wert_float, 2) = 20.11;
+----+------------+----------+
| id | wert_float | wert_dec |
+----+------------+----------+
| 2 | 20.11 | 20.11 |
+----+------------+----------+
1 row in set (0.02 sec)
mysql>
Ansonsten verstehe ich nicht wirklich, warum Du die identische Zahlendarstellung brauchst, letztlich ist die Ausgabe nur eine Art formatierung der Werte und dabei werden bei DEC(10,2) eben zwei Nachkommastellen angehängt.
Grüße
Thomas