[RESOLU] problème champ floatval en SQL

problème champ floatval en SQL [RESOLU] - PHP - Programmation

Marsh Posté le 22-03-2006 à 22:25:36    

Bonjour tlm,
 
petit pb que j'arrive pas à résoudre. C'est la 1ere fois que je vois ça
j'ai une requete simplifiée de cette forme
 

Code :
  1. SELECT * FROM commandes c WHERE c.montant LIKE '23.92'


 
avec montant un champ SQL définit en float (10,2) et ma valeur en variable normalement est récupéré avec un floatval()
 
Evidemment le LIKE n'est pas approprié et c'est justement mon pb, si j'utilise = '23.92' ca ne fonctionne pas. J'ai un retour que si le montant est un entier (ex : 125.00) Là ca marche.
 
Donc si je mets LIKE ca fonctionne aussi et si j'utilise un comparateur < ou > ca fonctionne.
 
Dc est ce que qqn aurait été confronté à ce pb.
 
Merci ++


Message édité par newneo2001 le 23-03-2006 à 16:51:03

---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 22-03-2006 à 22:25:36   

Reply

Marsh Posté le 22-03-2006 à 22:29:32    

Erreur d'arrondi. Fallait utiliser un decimal [:spamafote]
 
C'est d'ailleurs dans la doc :
http://dev.mysql.com/doc/refman/5. [...] float.html

Reply

Marsh Posté le 22-03-2006 à 22:36:32    

jolie j'ai passé mon champ en decimal dans ma db et ca fonctionne.
 
ce qui m'inquiete c'est ca
 
 Ce discours s'applique aux champs de types FLOAT, DOUBLE et DECIMAL.
 
visiblement decimal aussi peut poser problème. J'avais jamais été confronté à ce problème. Du coup tu utilises toujours des champs decimal à la palce de float en db alors ?


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 22-03-2006 à 23:41:18    

Quand le champ numerique ne tolere aucune erreur d'arrondi (par exemple un prix) j'utilise toujours des decimaux. Les seuls cas où j'utilise des flottants c'est pour des calculs genre stat, fonctions math etc...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed