les nombres à virgule flottante? MySql - SQL/NoSQL - Programmation
Marsh Posté le 23-10-2003 à 12:28:18
en gros
aucun prix ne doit etre arrondi
ceratin prix doiventa voir 4chiffres apres la virgule et d'autres 2
kel ets le meilleur type?
je pencherai pour decimal car je crois qu'il n'ya pas d'arrondi et que c'est considéré comme uen chaine , mais je demande confirmation
Ensuite comment faire en php pour tester si un chiffre saisi dans un formulaire est un nombre a virgule flottante?
Marsh Posté le 23-10-2003 à 12:37:16
decimal en PHP = 1.5
décimal SGBD =1,5
en fonction de se qu'on veut on est obligé soit meme de faire les modifications associés?
le passage de la varibale PHP dans la base MySql causerai un pb non?
;o)
Marsh Posté le 23-10-2003 à 13:40:23
1- Choisi decimal
2- http://fr3.php.net/manual/fr/function.is-float.php
3- Décimal MySql : c'est le point(.) qui est utilisé.
Exemple :
INSERT INTO test set prod_id=26, prix=12345.12
Marsh Posté le 23-10-2003 à 13:42:40
Float va stocker ta variable sous forme d'une division d'entiers. C'est "pas précis" (pour les très gros montants ou les très petits montants, tu risque d'avoir des trucs style 199999999999.9999 au lieu de 200000000000.0000 ce qui fout le bronx.
Decimal quand à lui c'est un stockage à la façon "chaîne de caractère", c'est à dire qu'il va stocker les chiffres éxacts, âchant qu'il est de mémoire limité à plus de chiffres, donc c'est mieu.
Un champ décimal se déclare normalement decimal(13,4) ce qui veut dire que tu veux 13 chiffres dont 4 après la virgule (donc avec mon exemple tu montes jusqu'à "1 000 000 000 - 0.0001"
Marsh Posté le 23-10-2003 à 13:46:58
merci merci a vous 2
donc c'est bon ca confirm mon choix de "decimal" ;o)
Marsh Posté le 23-10-2003 à 13:49:54
Mara's dad a écrit : 1- Choisi decimal |
is_float ne fonctionne pas
que je rentre 12.3 ou 12,3 il me detect jamais que c'est un float
Marsh Posté le 23-10-2003 à 13:50:36
donc comment faire pour tester que la valeur dans un champ est un decimal? (mais avec une virgule pas le point)
Marsh Posté le 23-10-2003 à 13:55:04
MagicBuzz a écrit : Bah tu fais un replace du point par une virgule |
non je ne veux pas faire ca pour diverse raison
je pourrais mais je veux pas (par choix et pour forcer ceux qui reference les produits a faire des saisis correct)
c'ets une contrainte que mon chef ma fait.
Par contre je doit bien tt tester ou sont les ereurs et les prévenirs
Marsh Posté le 23-10-2003 à 14:00:30
et puis autre question ;o)
ya t-il une fonction PHP qui permet de savoir le nombre de chiffres apres la virgule?
Marsh Posté le 23-10-2003 à 14:34:56
Il te faut une virgule, c'est bien çà !
Si oui, tu va devoir la changer en point pour l'insert en base.
En fait tu teste pas des nombres, mais des chaînes de caractères.
Donc exemple pour tester et/ou compter
$valeur = '1234,123'; |
Marsh Posté le 23-10-2003 à 14:42:23
Mara's dad a écrit : Il te faut une virgule, c'est bien çà !
|
je te remercie ;o)
Marsh Posté le 23-10-2003 à 12:24:00
qu'elle est le meilleur typage a utiliser pour les nombres a virgule flottant avec MySql
Exemple pour des tarifs de produits
je suis un peu perdu entre
Float et Decimal ?
dans l'aide ca parle de precision et d'arrondi mais je saisi mal l'avanatge et les inconvenients de chacun
merci d'avance