[RESOLU] PB avec les virgules et MYSQL ?!

PB avec les virgules et MYSQL ?! [RESOLU] - PHP - Programmation

Marsh Posté le 11-11-2006 à 19:55:23    

Bonjour,
 
J'ai tout simplement un soucis avec MySQL et PHP :
J'ai une table sql avec un champs DECIMAL pour pouvoir y entrer des nombre à virgules.
Donc j'entre tout simplement 22.45 par exemple et ca me donne 22 !!???
J'ai aussi assayer avec la virgule : en vain.
J'ai cherche sur google il parle bien d'une virgule mais .. flotante ?
 
Et bien sûr je vais utilisé mais donnée pour des calculs : dpnc pas vraiemnt possible de les entrer en tant que texte ...
 
Merci de votre aide ...
PS : J'ai mit mon psot dans PHP car j'ai apris que SQL et MySQL ca avait rien a voir ...


Message édité par Galoula le 11-11-2006 à 20:54:34

---------------
http://www.galoula.com = LE site de Galoula France !
Reply

Marsh Posté le 11-11-2006 à 19:55:23   

Reply

Marsh Posté le 11-11-2006 à 20:30:03    

Je cite le manuel (ce truc inutile que personne ne lit quand on a des résultats étranges) :
 

Citation :

Les types NUMERIC et DECIMAL  sont considérés comme identiques par MySQL, comme l'autorise le standard SQL92. Ils sont utilisées par des valeurs dont il est primordial de conserver la précision exacte, comme pour des données financières. Lorsque vous déclarez des colonnes avec l'un de ces types, vous pouvez indiquer la précision et l'échelle comme ceci :
 
salaire DECIMAL(5,2)
 
Dans cet exemple, 5 (précision) représente le nombre de décimales signifiantes qui seront stockées pour les valeurs, et 2 (échelle) représente le nombre de chiffres qui seront stockés après le point des décimales.
 
Les valeurs de type DECIMAL et NUMERIC sont stockées sous forme de chaînes de caractères, plutôt que comme des nombres à virgule flottante, afin de préserver la précision décimale des valeurs. Un caractère est donc nécessaire pour chaque chiffre, plus la virgule (si scale > 0), et le signe moins ‘-’ (pour les nombres négatifs). Si scale vaut 0, les valeurs de type DECIMAL et NUMERIC ne comporteront pas de valeur décimale, ni de virgule.


 
conclusion, vérifie si ton nombre n'est pas définit en Decimal(10,0) par défaut.

Reply

Marsh Posté le 11-11-2006 à 20:53:56    

En fait j'avais lu ceci mais cella m'as completement embrouilles avec ca : Les types NUMERIC et DECIMAL  sont considérés comme identiques par MySQL. Car je pensait que numeric c'etait pou le ... binaire ... (oui je sort là !).
Je vais donc metre une chose comme 8,2 pour avoir mes centiemes ?
Je viens de la faire et en effet ca fonctionne ...
Seul ptit HIC : il me complette toujours les entiers avec ".00" Mais bon cella je vais faire un str_replace et le tour est jouer :)
Merci beaucoup !


---------------
http://www.galoula.com = LE site de Galoula France !
Reply

Sujets relatifs:

Leave a Replay

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