JeuWeb - Crée ton jeu par navigateur
[Résolu] Nombre aléatoire précédé de 0 - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Nombre aléatoire précédé de 0 (/showthread.php?tid=2525)

Pages : 1 2


[Résolu] Nombre aléatoire précédé de 0 - jean-baptiste - 03-03-2008

Bonjour je me creuse un peu la tête maintenant mais je ne trouve pas la réponse !
Je voulais savoir si il était possible ou si une fonction ferai cela :
je voudrai en faite sortir un nombre aléatoire de 5 nombre tout le temps c'est à dire rand(1,99999); mais j'aimerai que si le nombre est par exemple 14 que cela me donne 00014.
Merci de vos réponse Wink


RE: Nombre aléatoire - Sephi-Chan - 03-03-2008

Tu peux aussi faire mt_rand(10000, 99999); qui te donnera un nombre de 5 chiffres. Wink

Sephi-Chan


RE: Nombre aléatoire - jean-baptiste - 03-03-2008

Oui je souhaite vraiment commencer à un car il me faut absolument mes 0000 devant pour que cela fonctionne !


RE: Nombre aléatoire - Sephi-Chan - 03-03-2008

Les fonction rpad() et lpad() ne semblent pas exister en PHP, alors voici celle que je propose.

Code PHP :
<?php 
function genererNombre(){
$nombre = mt_rand(1, 99999);
$difference = 5 - strlen($nombre);
$nombreFinal = '';

for(
$i = 1; $i <= $difference; $i++){
$nombreFinal .= '0';
}

$nombreFinal .= $nombre;

return (int)
$nombreFinal;
}

Voilà. Smile


Sephi-Chan


Edit :
Petit problème : si l'on converti le nombre en entier (avec l'opérateur de transtypage (int) ou la fonction intval()), PHP élimine les 0 à gauche… Il faut donc se contenter d'une chaîne de caractère. Smile

Code PHP :
<?php 
function genererNombre(){
$nombre = mt_rand(1, 99999);
$difference = 5 - strlen($nombre);
$nombreFinal = '';

for(
$i = 1; $i <= $difference; $i++){
$nombreFinal .= '0';
}

$nombreFinal .= $nombre;

return
$nombreFinal;
}



RE: Nombre aléatoire - jean-baptiste - 03-03-2008

hihih je vienai de mettre la main à la pate et voilà ce que j'avais pondu ça ressemble fortement à toi :

Code PHP :
<?php 
function zero($nombre,$longueur_voulu) //déclaration de la fonction $nb = nombre à afficher , taille= taille du nombre
{
$taille_nb = strlen($nombre); //compte la taille du nombre en cours
$nb_zero = $longueur_voulu-$taille_nb; //calcul le nombre de zero à ajouter
for($i=0;$i<$nb_zero;$i++) // petite boucle d'ajout
{
$bcl_zero .= '0';
}
$nbfinal = $bcl_zero.$nombre; //concaténation des zéros et du nombre
return $nbfinal; // et la fin
}

Au bout du compte on est jamais mieux servie que par soit même et puis ça fait réflechir lol


RE: Nombre aléatoire - Sephi-Chan - 03-03-2008

Canailloux ! T'as pas indenté ton code ! Big Grin


Sephi-Chan, et pense à mettre un [Résolu] devant le titre de sujet. Wink


RE: Nombre aléatoire - jo_link_noir - 03-03-2008

salut,
sinon y a moyen de le faire avec un printf
Code PHP :
<?php 
printf
("%05s", mt_rand(1,99999));



RE: Nombre aléatoire [résoluuuu] - jean-baptiste - 03-03-2008

Ah oui tout de suite bcp moins long ! Bah merci beaucoup pour l'asutuce J-12 Wink


RE: Nombre aléatoire [résoluuuu] - Sephi-Chan - 03-03-2008

Effectivement, la technique avec printf() était sur les contributions des utilisateurs sur la page de documentation de sprintf().

Je m'étais trompé, il existe bien une fonction qui permet de faire du remplissage en PHP : str_pad().


Sephi-Chan


RE: Nombre aléatoire [résoluuuu] - jo_link_noir - 03-03-2008

oui, j'ai vérifier rapidement dans la doc, j'avais un vague souvenir qu'avec printf c'était possible. Mais str_pad() et quand même mieux, je le note ^^