-
Comparaison de Float
Bonjour,
J'ai une relation maître/détail qui se fait entre autre sur deux champs de type Float.
Lorsque ceux-ci ont une valeur entière, si je peux dire, (10,0; 5,0; 65,0 ...) la relation se fait parfaitement.
Mais lorsqu'ils ont effectivement une valeur décimale (10,5; 9,5; 0,75 ...) la relation ne se fait pas.
J'ai donc essayer de faire la relation de diffèrentes façons :
-ROUND(Champ1) = ROUND(Champ2)
-ABS(Champ1*100) = ABS(Champ2*100)
Pour la seconde méthode ca ne fonctionne pas mieux.
Pour la première je pensait qu'elle fonctionnait parfaitement jusqu'à ce que je trouve une exception. Elle ne fonctionne pas pour la valeur 1,6 et sans doute pour d'autres qui sait ...
Alors voilà, je ne vois pas comment faire autrement ...
Auriez-vous une petite idée à ce sujet ?
Merci d'avance
-
ne pas utiliser le type float peut etre...
et préférer le type décimal
exemple sous mysql : http://dev.mysql.com/doc/refman/5.0/...ric-types.html
-
Non je ne peux pas toucher à la base de données, je dois garder le type float ...
-
combien de chiffres apres la virgule au maximum?
pour deux chiffres max, je testerais ceci :
Code:
FLOOR(champ1*100) = FLOOR(champ2*100)
-
Deux chiffres après la virgule