8797 sujets

Développement web côté serveur, CMS

Bonjour

Quand je mets des grands nombres dans la base (+de 7 chiffres) ils se transforment automatiquement en 10 exp(7)
Comment remédier à cela pour avoir des nombres normaux avec tous les zéros affichés ?

Merci pour votre aide!
de quel base s'agit-il ?

et quand tu réaffiches la valeur avec une requete le resultat ressors sous la forme d'un chiffre en exposant?

car sinon l'aspect dans la base est moyen important
Bonjour

C'est la base MYSQL

et oui le résultat de ma requete s'affiche sous la forme d'un nombre en exposant

Comment faire ?
Merci d'avance
re,

j'essai déjà de reproduire ton prob pour tenter de le resoudre en suite avec un printf ( ou un sprintf )qui indiquerais le format a affiché.

ou essayé la fonction number_format de php.

mais j'arrive pas a avoir des 10e7 dans mes bases. jai essayé des champs de type int, double, decimal

et d'y mettre des 1000000,10000000,100000000,1000000000 et même des 10e7 dans phpmyadmin et rien a faire même les 10e7 sont traduit en 1000000 Smiley biggol Smiley langue

edit AH Smiley ravi si avec le type float ca fait ainsi ouf . le seul que j'avais pas testé.

bon alors voila avec printf ou sprintf ( si tu veux recuperer l'affichage dans une variable )
un %f te renverra le 1.e7 sous forme 10000000.00000
un %.0f te donnera 10000000 sans virgule car tu auras precisé flottant avec 0 de precision derriere la virgule.

attention a l'utilisation de simple float dans des calculs mathématiques. c'est la porte ouverte au pb d'approximation.
Modifié par CPascal (09 Mar 2008 - 13:10)
bonjour
j'ai essayé ce que tu m'as dit
mais ce n'est pas 1000000 qui s'affiche mais 1
j'ai mis

$sql="select essai from annonce where id='210'";

$resultat= mysql_query($sql);

while( $essai= mysql_fetch_array($resultat)){



$var= sprintf("%.0f",$essai);
echo $var ;}



Comment faire alors merci d'avance
quel type de variable est-ce karenma?

j'avais un 1e+0008 qui est devenu 100000000

je vais essayé avec sprintf.

j'avais fais des tests avec printf. je vais verifier sprintf.

maintenant tu sais il y a plus d'une version de mysql.

au pire du pire si personne ne trouve un fct php ou mysql
faisant la translation il faudrait l'ecrire.... Smiley sweatdrop

mais j'ai du mal a croire qu'il n'existe pas déjà quelquechose
Salut,
karenma a écrit :


j'ai essayé ce que tu m'as dit
mais ce n'est pas 1000000 qui s'affiche mais 1

Parce que ce n'est pas
$var= sprintf("%.0f",$essai);
mais
$var= sprintf("%.0f",$essai['essai']);
ou
$var= sprintf("%.0f",$essai[0]);

En passant, si ton nombre est un entier, autant remplacer son type float par int Smiley cligne .

A+


Edit: en repassant, je suppose que tu n'as qu'un enregistrement qui a l'id '210' donc si c'est le cas : inutile d'utiliser la boucle while.
Modifié par Heyoan (09 Mar 2008 - 19:41)