Problème opérateur php
Résolu/Fermé
88av
Messages postés
262
Date d'inscription
dimanche 3 mars 2013
Statut
Membre
Dernière intervention
17 avril 2015
-
27 mars 2013 à 12:45
88av Messages postés 262 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 17 avril 2015 - 15 mars 2014 à 13:15
88av Messages postés 262 Date d'inscription dimanche 3 mars 2013 Statut Membre Dernière intervention 17 avril 2015 - 15 mars 2014 à 13:15
A voir également:
- Problème opérateur php
- Easy php - Télécharger - Divers Web & Internet
- A quel opérateur appartient ce numéro ✓ - Forum Opérateurs & Réseaux mobiles
- Php natif - Forum PHP
- 0465 opérateur ✓ - Forum Vos droits sur internet
- 0466 operateur - Forum Mobile
5 réponses
Utilisateur anonyme
21 avril 2013 à 16:47
21 avril 2013 à 16:47
Bonjour
Cette 'lettre anormale' ne serait pas un 'e' par hasard ?
Si tu as tapé un petit nombre de grammes, le résultat en tonnes est un nombre tellement petit qu'il est affiché en notation scientifique qui utilise la lettre 'e' pour indiquer une puissance de 10. À l'inverse, si tu entres un très grand nombre de grammes, c'est vers les petites unités (milligrammes, centigrammes...) que tu vas retrouver ce 'e'.
Cette 'lettre anormale' ne serait pas un 'e' par hasard ?
Si tu as tapé un petit nombre de grammes, le résultat en tonnes est un nombre tellement petit qu'il est affiché en notation scientifique qui utilise la lettre 'e' pour indiquer une puissance de 10. À l'inverse, si tu entres un très grand nombre de grammes, c'est vers les petites unités (milligrammes, centigrammes...) que tu vas retrouver ce 'e'.
Utilisateur anonyme
27 mai 2013 à 02:15
27 mai 2013 à 02:15
Bonsoir,
en fait il y a moyen de repousser le nombre de virgule après le zéro, mais c'est pas très pratique. je vais tout de même vous montrez ce qui pourrait être envisagé.
avec ceci :
Donc je me suis dis que si on comptait le nombre de chiffrres de vos résultats et on pourrait s'en servir
Bon ce que j'ai fait fonction à peu pret mais il va falloir régler tout comme il faut si tu décide de t'en servir. C'est pas de la mécanique de précision, mais là il est tard et je vais me coucher.
Bonne chance
en fait il y a moyen de repousser le nombre de virgule après le zéro, mais c'est pas très pratique. je vais tout de même vous montrez ce qui pourrait être envisagé.
avec ceci :
number_format($nombre,2); on met 2 chiffres après la virgule du chiffre $nombre
Donc je me suis dis que si on comptait le nombre de chiffrres de vos résultats et on pourrait s'en servir
Bon ce que j'ai fait fonction à peu pret mais il va falloir régler tout comme il faut si tu décide de t'en servir. C'est pas de la mécanique de précision, mais là il est tard et je vais me coucher.
Bonne chance
<center> <strong>Entrez un nombre de gramme :</strong> <br/> <form method="POST" action="index.php"> <input type="text" name="gra" style="text-align: center;" /> <br/> <input type="submit" name="gramme" value="convertire"/> </form> <br/> <?php if(isset($_POST['gramme'])) { $gra=$_POST['gra']; $tab1[0]=$resultat_milli=$gra*1000; //3 zéros $tab1[1]=$resultat_centi=$gra*100; //2 zéros $tab1[2]=$resultat_deci=$gra*10; //1 zéros $tab1[3]=$resultat_gramme=$gra/1; //0 zéros $tab1[4]=$resultat_deca=$gra/10; //1 zéros $tab1[5]=$resultat_hecto=$gra/100; //2 zéros $tab1[6]=$resultat_kilo=$gra/1000; //3 zéros $tab1[7]=$resultat_dizaine=$gra/10000; //4 zéros $tab1[8]=$resultat_quintal=$gra/100000; //5 zéros $tab1[9]=$resultat_tonne=$gra/1000000; //6 zéros $tab2[0]=$nbr_milli=$resultat_milli.strlen; $tab2[1]=$nbr_centi=$resultat_centi.strlen; $tab2[2]=$nbr_deci=$resultat_deci.strlen; $tab2[3]=$nbr_gramme=$resultat_gramme.strlen; $tab2[4]=$nbr_deca=$resultat_deca.strlen; $tab2[5]=$nbr_hecto=$resultat_hecto.strlen; $tab2[6]=$nbr_kilo=$resultat_kilo.strlen; $tab2[7]=$nbr_dizaine=$resultat_dizaine.strlen; $tab2[8]=$nbr_quintal=$resultat_quintal.strlen; $tab2[9]=$nbr_tonne=$resultat_tonne.strlen; $tab3[0]='milligramme'; $tab3[1]='centigrammes'; $tab3[2]='décigrammes'; $tab3[3]='grammes'; $tab3[4]='décagrammes'; $tab3[5]='hectogrammes'; $tab3[6]='kilogrammes'; $tab3[7]='dizaines de kilogrammes'; $tab3[8]='quintaux'; $tab3[9]='tonne'; for($i=0;$i<10;$i++) { if($tab1[$i]<0.0001) { echo $gra.' gramme font '.number_format($tab1[$i],$tab2[$i]+6).' '.$tab3[$i].'</br></br>'; } elseif($tab1[$i]<0.00001) { echo $gra.' gramme font '.number_format($tab1[$i],$tab2[$i]+7).' '.$tab3[$i].'</br></br>'; } else { echo $gra.' gramme font '.$tab1[$i].' '.$tab3[$i].'</br></br>'; } } } ?> </center>
88av
Messages postés
262
Date d'inscription
dimanche 3 mars 2013
Statut
Membre
Dernière intervention
17 avril 2015
7
21 avril 2013 à 15:32
21 avril 2013 à 15:32
Quelqu'un pourrait m'aider ?
S'il vous plait.
S'il vous plait.
ReDLoG
Messages postés
243
Date d'inscription
mardi 12 mars 2013
Statut
Membre
Dernière intervention
28 octobre 2021
57
21 avril 2013 à 15:55
21 avril 2013 à 15:55
Bonjour,
Je viens de tester ton code PHP et j'ai entré le chiffre 100 (pour 100 grammes) dans le formulaire et je ne vois pas de lettre "étrange" s'afficher dans le nombre de tonnes ?
Voici le résultat du test (copier/coller depuis mon navigateur) :
Cdlt.
Je viens de tester ton code PHP et j'ai entré le chiffre 100 (pour 100 grammes) dans le formulaire et je ne vois pas de lettre "étrange" s'afficher dans le nombre de tonnes ?
Voici le résultat du test (copier/coller depuis mon navigateur) :
100 gramme font 100000 milligramme 100 gramme font 10000 centigrammes 100 gramme font 1000 décigrammes 100 gramme font 100 grammes 100 gramme font 10 décagrammes 100 gramme font 1 hectogrammes 100 gramme font 0.1 kilogrammes 100 gramme font 0.01 dizaines de kilogrammes 100 gramme font 0.001 quintaux 100 gramme font 0.0001 tonnes
Cdlt.
88av
Messages postés
262
Date d'inscription
dimanche 3 mars 2013
Statut
Membre
Dernière intervention
17 avril 2015
7
26 mai 2013 à 20:34
26 mai 2013 à 20:34
Quelqu'un connecterait un moyen simple SVP ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
88av
Messages postés
262
Date d'inscription
dimanche 3 mars 2013
Statut
Membre
Dernière intervention
17 avril 2015
7
15 mars 2014 à 13:15
15 mars 2014 à 13:15
Merci, j'ai adapté le code, et ça donne ça :
Merci, et au revoir
function ecrire_nombre($nombre){ if(is_numeric($nombre)==true){ if(strpos($nombre, 'E')!=FALSE){ $valeur = substr($nombre, 0, strpos($nombre, 'E')); // Nombre avant le E $deux=substr($nombre, strpos($nombre, 'E')+1); // Nombre après E if(substr($deux, 0, 1)=='-'){ $deux=substr($deux, 1); for($n=$deux;$n!=0;$n--){ $valeur='0'.$valeur; $position_virgule=strpos($valeur, '.'); $valeur=substr($valeur, 0, $position_virgule).substr($valeur, $position_virgule+1); $position_virgule--; $valeur=substr_replace ( $valeur, '.', $position_virgule ,0 ); }; return $valeur; } elseif(substr($deux, 0, 1)=='+'){ $deux=substr($deux, 1); for($n=$deux;$n!=0;$n--){ $valeur='0'.$valeur; $position_virgule=strpos($valeur, '.'); $valeur=substr($valeur, 0, $position_virgule).substr($valeur, $position_virgule+1); $position_virgule++; $valeur=substr_replace ( $valeur, '.', $position_virgule ,0 ); }; return $valeur; }; } elseif(strpos($nombre, '.')!=FALSE){ // Si le nombre est décimal return number_format($nombre, strlen($nombre)-strpos($nombre, '.')-1, ',', ' '); } else { return number_format($nombre, 0, ',', ' '); }; } else { return FALSE ; }; }; $resultat_milli=ecrire_nombre($resultat_milli);
Merci, et au revoir
21 avril 2013 à 16:51
Merci d'avance.
21 avril 2013 à 16:58
Il faut partir du nombre qui t'a été donné au départ (qui avait été saisi sous forme d'une chaîne de caractères), et faire tes conversions non pas sous forme de nombres mais directement sur le texte en décalant la virgule et en ajoutant ou supprimant des zéros...
22 mai 2013 à 09:28