Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/08/2007, 12h18   #1
Membre confirmé
 
Avatar de MANU_2
 
Inscription : mai 2002
Messages : 417
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 417
Points : 224
Points : 224
Par défaut type pour prix

Bonjour,

Quel est le meilleur type pour un champ qui contient des prix (qui se rapproche le + au type monétaire d'office) ?

Merci
MANU_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 13h16   #2
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
je dirai DOUBLE.

http://dev.mysql.com/doc/refman/5.0/...-overview.html
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 13h24   #3
Membre confirmé
 
Avatar de MANU_2
 
Inscription : mai 2002
Messages : 417
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 417
Points : 224
Points : 224
FLOAT ou DOUBLE, le chiffre 650,00 ne rentre pas ds la table, il n'est qu'enregistrer que 650.
MANU_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 13h29   #4
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
impossible.

As tu essayé ?
Citation:
Un nombre à virgule flottante, en précision double. Les valeurs possibles vont de -1.7976931348623157E+308 à -2.2250738585072014E-308, 0, et 2.2250738585072014E-308 à 1.7976931348623157E+308. Si UNSIGNED est spécifié, les valeurs négatives sont interdites
J'ai essayé et ça rentre
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 13h30   #5
Membre confirmé
 
Avatar de MANU_2
 
Inscription : mai 2002
Messages : 417
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 417
Points : 224
Points : 224
j'ai essayer DECIMAL, ça marche mieux
MANU_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 13h32   #6
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
Citation:
L'intervale de validité du type DECIMAL est le même que DOUBLE, mais le vrai intervalle de validité de DECIMAL peut être restreint par le choix de la valeur de M et D. Si UNSIGNED est spécifié, les valeurs négatives sont interdites.
Ce qui confirme ce que je disais.

Mais decimal conviendra aussi
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 13h33   #7
Membre confirmé
 
Avatar de MANU_2
 
Inscription : mai 2002
Messages : 417
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 417
Points : 224
Points : 224
j'ai retester le DOUBLE et ça marche, comme pour DECIMAL.
J'ai du faire une erreur tout à l'heure.

Bref, sinon, le seul petit hic c'est que dans la table faut mettre des "." à la place des ",".
MANU_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 13h36   #8
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
justement quand j'avai tester double, j'ai testé avec le point et la virgule mais en saisissant au clavier et ça a marché. mais c'etait au clavier donc c'est pas signifiant.
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 13h40   #9
Membre confirmé
 
Avatar de MANU_2
 
Inscription : mai 2002
Messages : 417
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 417
Points : 224
Points : 224
je sens que je vais choisir DECIMAL avec UNSIGNED et avec un traitement pour modifier le ".".

Merci bcp pop_up
MANU_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 15h02   #10
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
http://dev.mysql.com/doc/refman/5.0/...ing-types.html
Mysql conseille DECIMAL parce que celui ne sera pas formaté donc pas d'ajustement.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2007, 23h02   #11
Membre expérimenté
 
Étudiant
Inscription : mars 2006
Messages : 396
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 396
Points : 500
Points : 500
Citation:
Envoyé par MANU_2 Voir le message
Quel est le meilleur type pour un champ qui contient des prix ?
Pour écrire des prix, je suppose que tu as toujours que 2 chiffres après la virgule ?
Dans ce cas pourquoi ne pas stocker tout simplement les prix dans des nombres entiers.
Ensuite, savoir s'il faut mettre des points ou des virgules, ce n'est qu'une question d'affichage. Les données seront enregistrées dans la base de données sous forme de nombre entiers.

Je déconseille d'utiliser des nombres flottants pour des prix car les flottants ont une précision relative, alors que les entiers ont une précision absolue.
Pour faire court, avec des flotttants, tu auras beaucoup trop de précision avec les petites valeurs, et lorsque tu auras de très grandes valeurs, tu manqueras de précision.
En effet, les flottants ne sont pas conçus pour enregistrer des valeurs exactes, mais plutôt pour indiquer des ordres de grandeur.
jeremya est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h03.


 
 
 
 
Partenaires

Hébergement Web