|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juillet 2004 Messages : 37 ![]() |
Bonjour,
Dans ma table j'ai une colonne valeurFloat, avec comme par exemple les valeurs : 0.1 0.2 0.5 0.6 Lorsque dans ma requête je fais valeurFloat <= 0.6 j'ai toutes les valeurs retournés sauf 0.6 ! Je ne comprend pas pourquoi? Edit: ha et quand je fais = 0.6 la requête ne me retourne rien... |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
C'est parce que FLOAT correspond à nombre à virgule flottante. Ce qui signifie que, en base, il y a de forte chance pour que 0.6 soit plutôt stocké comme 0.60000001 ou quelque chose d'approchant. Parfois, c'est stocké sous la forme 0.59999999991... ça flotte ! La solution consiste à arrondir ta colonne valeurFloat par la fonction ROUND, puis à comparer à 0.6.
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juillet 2004 Messages : 37 ![]() |
Merci pour ta réponse!
Je ne savais pas, en faisant une petite recherche la doc Mysql donne quelques info : http://dev.mysql.com/doc/refman/5.0/...ith-float.html |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com