[RESOLU]Convertir un nombre entier en decimal si ce nombre est plus...

Convertir un nombre entier en decimal si ce nombre est plus... [RESOLU] - PHP - Programmation

Marsh Posté le 18-10-2010 à 13:34:16    

Bonjour,
Ayant cherché pendant 2H30 une réponse à mon problème je me tourne vers vous.
Voici mon probleme:
Comment convertir (en PHP) un nombre entier en decimal
exemple:
 
325412 Mo en 325 Go
 
voici mon l'appel de mon resultat mais je n'arrive pas à programmer le tout.
 

Code :
  1. $req = mysql_query ("SELECT uploadsize From users WHERE id = $USER[id]" );
  2. $user = mysql_fetch_array($req);
  3. echo("".$user['uploadsize']." Mo" );


 
Voila jusque la tout va bien mon resultat s'affiche.
 
325412 Mo
 
Maintenant je voudrait convertir ce resultat en Go
soit 325 Go
 
donc j'ai fait ce script mais ca ne fonctionne pas comme je le voudrait
 

Code :
  1. $req = mysql_query ("SELECT uploadsize From users WHERE id = $USER[id]" );
  2. $user = mysql_fetch_array($req);
  3. if ($user["uploadsize"]>999) {
  4. $user["uploadsize"] = "$user[uploadsize] Go";
  5. } else {$user["uploadsize"] = "$user[uploadsize] Mo";}
  6. echo("".$user['uploadsize']." " );


 
grace à ce script le résultat est maintenant 325412 Go
 
merci de m'éclaircir sur le sujet
amicalement


Message édité par dabiz le 18-10-2010 à 14:46:54
Reply

Marsh Posté le 18-10-2010 à 13:34:16   

Reply

Marsh Posté le 18-10-2010 à 14:20:41    

Code :
  1. $upload_size = $user["uploadsize"];
  2. if ($upload_size  >1024) { // 1Go = 1024 Mo
  3.    $upload_size_go = $upload_size  /1024 ; // on passe en Go
  4.    $upload_size_go_arrondi = round($upload_size_go , 1); //on arrondi a un chiffre après la virgule
  5.    echo "($upload_size_go_arrondi Go)";
  6. } else {
  7. echo "($upload_size Mo)";
  8. }


Message édité par flo850 le 18-10-2010 à 14:21:10
Reply

Marsh Posté le 18-10-2010 à 14:32:47    

Bonjour Flo850 et merci pour ta réponse
personnellement j'ai fait ce script qui fonctionne bien et qui a résolut mon problème.
 

Code :
  1. <?PHP
  2. //recupère le nombre entier
  3. $req = mysql_query ("SELECT uploadsize From users WHERE id = $USER[id]" );
  4. // va chercher le resultat
  5. $user = mysql_fetch_array($req);
  6. // Si '$user["uploadsize"]plus grand que 999 Mo' alors:
  7. if ($user["uploadsize"]>999){   
  8. // le resultat
  9. $str = "$user[uploadsize]";
  10. //ajoute une virgule entre chaque chiffre puis garde les 3 premiers chiffres seulement
  11. $newstr = substr(implode(",", preg_split('//', $str)), 1, -6);
  12. // efface les virgules
  13. $newstr = str_replace (",","",$newstr);
  14. //ajoute l'extension
  15. $ecarle = "Go";
  16. }
  17. // sinon
  18. else {
  19. //recupère le chiffre entier
  20. $newstr = "$user[uploadsize ]";
  21. //ajoute l'extension
  22. $ecarle = "Mo";
  23. }
  24. // affichage du resultat
  25. echo $newstr, $ecarle;
  26. ?>


 
Ce qui me fournis bien mon resultat 325 Go


Message édité par dabiz le 18-10-2010 à 14:36:15
Reply

Marsh Posté le 18-10-2010 à 14:36:00    

:eek:
 
tu n'as pas trouvé plus sale ?  
 

Reply

Marsh Posté le 18-10-2010 à 14:37:53    

nn dsl xD
c'est le seul truc que j'ai pu faire depuis ce matin et qui fonctionne xD

Reply

Marsh Posté le 18-10-2010 à 14:38:40    

honnêtement, utilise mon code, il est quand même plus lisible (une division, puis un arrondi)

Reply

Marsh Posté le 18-10-2010 à 14:41:20    

c'est fait ne t'inquiète pas il fonctionne parfaitement merci beaucoup

Reply

Marsh Posté le 18-10-2010 à 14:54:49    

Sinon tu fais une requête google via CURL, il est très bon pour ce genre de conversions, ça prend genre 3 lignes :o


Message édité par masklinn le 18-10-2010 à 14:54:57

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

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