|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
Bonjour à tous,
J'ai utilisé une fonction pour le calcul des moyennes à deux chiffres significatifs ! J'ai fait des tests et ça affiche bien ce que j'attends. Mon soucis est que mes moyennes sont stockées dans la base de données et elle sont corrects sauf dans le cas où j'ai un nombre dont la longueur est 1, genre "2". Avec ma fonction, j'obtiendrai "2.0". Si je fais un echo je vois bien "2.0" mais dans phpMyAdmin, ça enregistre "2" ? Il ne rajoute pas ".0" !! et pourtant le type de mon champ est float. Quelqu'un a une idée ? |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
Bonjour à tous,
J'ai même essayer de modifier le type de mon champ (CHAR) et ça ne fonctionne pas !!! remarque que j'ai besoin de la moyenne pour calculer autre chose !!! Merci d'avance |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : août 2002 Messages : 1 036 ![]() |
Bonjour,
Utilise le type ce colonne "DECIMAL". |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Le problème n'est pas le type numérique choisi côté MySQL. Que ce soit en INTEGER, DECIMAL ou FLOAT : 2 = 02 = 000002 = 2.0 = 2.0000000.
Votre problème relève du formatage du nombre et doit se faire côté client (php). Récupérez votre nombre MySQL et utilisez : sprintf ou number_format. edit : Vous pouvez aussi faire la conversion avec MySQL lors de la restitution (SELECT) mais ne choisissez surtout pas de stocker vos nombre en varchar. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
Merci pour vos réponses.
@jeca : decimal n'est pas une bonne solution car je dois préciser le nombre de chiffres après la virgule ! Dans mon cas c'est variable mais il faut juste deux chiffres significatifs. exemple : 2 devient 2.0 0.0504232 devient 0.050 @vmolines : Je vais tester de suite votre solution et je vous tiendrez au courant. Encore merci à vous deux
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 5 ![]() |
Salut,
number_format ou sprintf ne résout pas le soucis ces fonctions sont utilisées pour l'affichage ! L'affichage ne me pose pas de problème. quand je fais echo, j'ai bien "2.0". Les moyennes calculées sont stockées dans la base de données pour ensuite exporter un fichier csv pour une autre utilisation ! est c'est en base de données que ça ne stocke pas "2.0" ! Je ne sais pas si je suis claire ?? |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Je le répète en base de données et d'un point de vue mathématique 2 = 2.0. C'est le client phpmyadmin qui formate 2.0 comme quand vous faites un echo. Vous devez faire le même travail de formatage des colonnes numériques en texte pour générer votre csv.
Dans tous les cas ce n'est pas un problème de base de données et il faudrait poser votre question dans le forum php. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com