Nombre avec virgule dans bdd

Nombre avec virgule dans bdd - SQL/NoSQL - Programmation

Marsh Posté le 16-11-2007 à 23:58:38    

Bonjour,
 
J'ai besoin de votre aide pour une question sur la décimale dans ma base de donnée.
Structure du champ score :
`score` int(11) NOT NULL default '0'
Ce champ est celui ou est stocké mon nombre mais il ne prend pas le nombre à virgule juste l'entier.
Je pense que le problème vient du type "int" mais je ne sais pas lequel serai le meilleur à mettre dans mon cas.
J'ai juste besoin de rentrer mon nombre et de le réafficher ensuite sur un site avec la la virgule.
 
Pouvez-vous m'aider et me dire quel type dois-je prendre ???
Merci


Message édité par macfleid le 16-11-2007 à 23:59:39

---------------
Games-Flash : Jeux en Flash avec Scores ==> http://www.games-flash.fr
Reply

Marsh Posté le 16-11-2007 à 23:58:38   

Reply

Marsh Posté le 17-11-2007 à 00:03:36    

c'est quoi le SGBD utilisé ? si c'est MySQL, alors le type à indiquer est "float" ou "double" (en fonction de la taille souhaitée). le type "int" ne sert effectivement que pour les entiers.
http://www.vulgarisation-informati [...] onnees.php

Reply

Marsh Posté le 17-11-2007 à 00:46:45    

OK merci pour la rapidité.
J'ai pris le double avec attribut UNSIGNED.
Je sais pas trop ce que ca change le UNSIGNED mais j'ai vu qu'il fallait le mettre dans mon cas.
 
Merci encore ca marche maintenant


---------------
Games-Flash : Jeux en Flash avec Scores ==> http://www.games-flash.fr
Reply

Marsh Posté le 17-11-2007 à 11:34:08    

macfleid a écrit :

Je sais pas trop ce que ca change le UNSIGNED mais j'ai vu qu'il fallait le mettre dans mon cas.


 
"unsigned", traduit littéralement, signifie "non signé".
 
Ce qui signifie que ton nombre ne peut être que positif ou nul, il ne pourra jamais être négatif.

Reply

Marsh Posté le 17-11-2007 à 15:19:42    

OK merci pour l'info. J'ai pas besoin des négatif donc c'est parfait.


---------------
Games-Flash : Jeux en Flash avec Scores ==> http://www.games-flash.fr
Reply

Marsh Posté le 19-11-2007 à 15:21:52    

Honnêtement, le type "decimal" (ou number/numeric selon le sgbd) est plus approrié. En plus sémantiquement c'est rigoureusement ce que tu cherches :D
 
En effet, je suppose que ta "note" aura un nombre de chiffres fixe, et notamment une décimale fixe. Le double (ou float) apporte une précision qui va bien au delà de ton besoin, et amène une série de problèmes tels que 1 = 0,99976 (problèmes inhérents à la représentation des doubles/float). Le numéric à l'aventage de stocker exactement ce que tu veux, dans exactement le nombre de bits nécessaires, avec une précision totale.
En revanche, il est un peu plus lent en ce qui concerne les calculs. Ceci dit, j'ai jamais vu de benchs mettant en évidence les différences de temps de calculs (c'est très certainement négligeable par rapport à la durée d'exécution de la requête elle-même).
 
donc en gros, pour des notes allant de 0 à 20 avec un incrément de 0,25, tu feras un decimal(4,2) (4 chiffres, donc deux après la virgule)


Message édité par MagicBuzz le 19-11-2007 à 15:25:22
Reply

Sujets relatifs:

Leave a Replay

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