Problème opérateur php
Résolu
88av
Messages postés
263
Date d'inscription
Statut
Membre
Dernière intervention
-
88av Messages postés 263 Date d'inscription Statut Membre Dernière intervention -
88av Messages postés 263 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème :
Je créer un site html/CSS/php ( en local ) qui doit convertir des poids.
Le problème est que quand on entre un nombre de gramme et que l'on clique sur convertir, le résultat des tonnes n'est pas un chiffre normal, il y a une lettre dans ce chiffre.
Je voudrait que cette lettre ne n'affiche plus et que le résultat soit entièrement en chiffres.
Voici une partie de mon code :
<center>
<strong>Entrez un nombre de gramme :</strong><br/>
<form method="POST" action="gramme.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'];
$resultat_milli=$gra*1000; //3 zéros
$resultat_centi=$gra*100; //2 zéros
$resultat_deci=$gra*10; //1 zéros
$resultat_gramme=$gra/1; //0 zéros
$resultat_deca=$gra/10; //1 zéros
$resultat_hecto=$gra/100; //2 zéros
$resultat_kilo=$gra/1000; //3 zéros
$resultat_dizaine=$gra/10000; //4 zéros
$resultat_quintal=$gra/100000; //5 zéros
$resultat_tonne=$gra/1000000; //6 zéros
echo '
'.$gra.' gramme font '.$resultat_milli.' milligramme</br></br>
'.$gra.' gramme font '.$resultat_centi.' centigrammes</br></br>
'.$gra.' gramme font '.$resultat_deci.' décigrammes</br></br>
'.$gra.' gramme font '.$resultat_gramme.' grammes</br></br>
'.$gra.' gramme font '.$resultat_deca.' décagrammes</br></br>
'.$gra.' gramme font '.$resultat_hecto.' hectogrammes</br></br>
'.$gra.' gramme font '.$resultat_kilo.' kilogrammes</br></br>
'.$gra.' gramme font '.$resultat_dizaine.' dizaines de kilogrammes</br></br>
'.$gra.' gramme font '.$resultat_quintal.' quintaux</br></br>
'.$gra.' gramme font '.$resultat_tonne.' tonnes</br></br>
'
;}
?>
</center>
J'ai un problème :
Je créer un site html/CSS/php ( en local ) qui doit convertir des poids.
Le problème est que quand on entre un nombre de gramme et que l'on clique sur convertir, le résultat des tonnes n'est pas un chiffre normal, il y a une lettre dans ce chiffre.
Je voudrait que cette lettre ne n'affiche plus et que le résultat soit entièrement en chiffres.
Voici une partie de mon code :
<center>
<strong>Entrez un nombre de gramme :</strong><br/>
<form method="POST" action="gramme.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'];
$resultat_milli=$gra*1000; //3 zéros
$resultat_centi=$gra*100; //2 zéros
$resultat_deci=$gra*10; //1 zéros
$resultat_gramme=$gra/1; //0 zéros
$resultat_deca=$gra/10; //1 zéros
$resultat_hecto=$gra/100; //2 zéros
$resultat_kilo=$gra/1000; //3 zéros
$resultat_dizaine=$gra/10000; //4 zéros
$resultat_quintal=$gra/100000; //5 zéros
$resultat_tonne=$gra/1000000; //6 zéros
echo '
'.$gra.' gramme font '.$resultat_milli.' milligramme</br></br>
'.$gra.' gramme font '.$resultat_centi.' centigrammes</br></br>
'.$gra.' gramme font '.$resultat_deci.' décigrammes</br></br>
'.$gra.' gramme font '.$resultat_gramme.' grammes</br></br>
'.$gra.' gramme font '.$resultat_deca.' décagrammes</br></br>
'.$gra.' gramme font '.$resultat_hecto.' hectogrammes</br></br>
'.$gra.' gramme font '.$resultat_kilo.' kilogrammes</br></br>
'.$gra.' gramme font '.$resultat_dizaine.' dizaines de kilogrammes</br></br>
'.$gra.' gramme font '.$resultat_quintal.' quintaux</br></br>
'.$gra.' gramme font '.$resultat_tonne.' tonnes</br></br>
'
;}
?>
</center>
A voir également:
- Problème opérateur php
- Opérateur de réseau mobile - Guide
- 0466 quel opérateur - Forum Mobile
- 0668 quel opérateur ✓ - Forum Mobile
- 0758 quel opérateur - Forum Opérateurs & Réseaux mobiles
- Easy php - Télécharger - Divers Web & Internet
5 réponses
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'.
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>
Quelqu'un pourrait m'aider ?
S'il vous plait.
S'il vous plait.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
Merci d'avance.
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...