Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
logo
Sommaire > Types > Nombres
        Arrondi d'un nombre
        Comment convertir un nombre dans une autre base ?
        Comment déclarer un nombre en octal, en hexadécimal ?
        Comment effectuer un calcul et fixer le nombre de chiffres après la virgule ?
        Comment élever un nombre x à une puissance y ?
        Comment générer un nombre décimal aléatoire ?
        Comment générer un nombre au hasard ?
        Comment formater un nombre décimal pour l'affichage ?
        Comment vérifier le format d'un nombre ?
        Comment tester si un nombre est impair ?



Arrondi d'un nombre
auteur : Cyberzoide
Arrondi à l'entier supérieur : ceil(),
arrondi à l'entier inférieur : floor(),
arrondi à l'entier le plus proche : round().

Exemples :
echo ceil(1.1); // affiche 2
echo floor(-1.6); // affiche -2
echo round(1.5); // affiche 2
A noter que round($nbr [, $dec]) peut prendre un argument optionnel lui spécifiant le nombre de chiffres après la virgule qu'il faut garder : c'est la précision décimale.


Comment convertir un nombre dans une autre base ?
auteur : Cyberzoide
Il est souvent utile de convertir un nombre décimal en binaire (écriture d'un fichier binaire), hexadécimal (format de couleur), octal (format des droits de fichiers) ou que sais-je encore...
$dec = "125";
$bin = "01001";
$hex = "ff00a2";
$oct = "4750";
echo decbin($dec); // décimal vers binaire
echo dechex($dec); // décimal vers hexadécimal
echo decoct($dec); //décimal vers octal
echo bindec($bin); // binaire vers décimal
echo hexdec($hex); // hexadécimal vers décimal
echo octdec($oct); // octal vers décimal
Il existe une fonction plus générale permettant de convertir un nombre en n'importe quelle base : base_convert ($nbr, $source, $dest) qui convertit en base $dest le nombre $nbr exprimé en base $source. Les bases sont des entiers compris entre 2 et 36.

Par exemple, la fonction decbin($nbr) est équivalente à base_convert($nbr,10,2). Etant entendu que les nombres décimaux sont en base 10, les binaires en base 2, les hexadécimaux en base 16 et les octaux en base 8.


Comment déclarer un nombre en octal, en hexadécimal ?
auteur : f-demu01
Lorsque l'on manipule des données numériques (le plus souvent informatiques), il peut s'avérer utile de définir une variable en base octale ou hexadécimale, afin de s'éviter tout un tas de conversions à la main. Ainsi, il suffit de précéder la valeur assignée à une variable du bigramme '0x' pour la définir en base hexadécimale, et du chiffre '0' pour une définition octale.
$hexa_var = 0x150 ; // Définition d'un nombre en base hexadécimale
$octal_var = 0150; // Définition d'un nombre en base octale
Attention, cette manipulation ne fonctionne que pour la définition: de fait, la commande
echo $hexa_var;
affichera 336 et non 0x150.


Comment effectuer un calcul et fixer le nombre de chiffres après la virgule ?
auteur : dourouc05
L'extension BCMath de PHP contient les outils nécessaires pour fixer le nombre de chiffres décimaux.

Il faut alors utiliser des fonctions de cette extension pour effectuer les opérations artithmétiques ; on peut définir le nombre de chiffres à conserver après la virgule en tant que troisième paramètre, les premier et deuxième étant réservés aux opérandes.
$a = '42.2424';
$b = '67';               
echo bcadd($a, $b); // 109.2424
echo bcadd($a, $b, 3); // 109.242
echo bcsub($a, $b); // -24.7576
echo bcsub($a, $b, 2); // -24.75
echo bcmul($a, $b); // 2830.2408
echo bcmul($a, $b, 1); // 2830.2
echo bcsqrt($a, 2); // 6.49

Comment élever un nombre x à une puissance y ?
auteur : Forum PHP
Pour élever un nombre x à la puissance y il suffit d'utiliser la fonction bcpow() qui retourne x élevé à la puissance y, FALSE en cas d'erreur.
Exemple :
$x = 2;
$y = 4;
echo bcpow($x, $y); // Affiche 16
Attention : la valeur de la puissance y doit toujours être entière


Comment générer un nombre décimal aléatoire ?
auteur : Forum PHP
Pour obtenir un nombre décimal aléatoire, il nous faut utiliser les fonctions rand() qui génère une valeur aléatoire et pow qui retourne un entier élevé à une certaine puissance.

Donc la génération d'un nombre décimal entre $a et $b avec $n chiffres après la virgule se fait avec le code :
$nb = mt_rand($a * pow(10, $n), $b * pow(10, $n)) / pow(10, $n);
lien : faq Comment générer un nombre au hasard ?
lien : faq Comment générer un identifiant aléatoire et unique ?

Comment générer un nombre au hasard ?
auteur : Cyberzoide
La machine ne sait fournir que ce qu'elle est en mesure de calculer. Or le vrai hasard ne se calcule pas, sinon ça n'en serait pas ! La machine est par contre en mesure de fournir des valeurs dont la distribution est suffisamment déroutante et sans ordre apparent pour les faire passer pour du hasard. Ces valeurs sont aléatoires. C'est du pseudo-hasard.

Pour obtenir un nombre aléatoire entre $min et $max : mt_rand([$min, $max]). Si $min et $max sont absents : retourne un entier entre 0 et RAND_MAX. Mais avant toute chose il faut initialiser le générateur de nombre aléatoire avec mt_srand($init) (appelée automatiquement depuis PHP 4.2.0) où $init est un entier d'initialisation qui lui même doit être toujours différent. Pour cela on prend en général la date courante avec précison à la seconde.

Exemple :
mt_srand((float) microtime()*1000000);
echo mt_rand(0, 100); // affiche un nombre aléatoire entre 1 et 100
lien : faq Comment générer un nombre décimal aléatoire ?
lien : faq Comment générer un identifiant aléatoire et unique ?

Comment formater un nombre décimal pour l'affichage ?
auteur : Forum PHP
Pour formater un nombre décimal, on utilise la fonction number_format() qui retourne une chaîne représentant nombre formaté.
Exemple de syntaxe :

$nombre = 1234.5632;
echo number_format($nombre); // Affiche 1,235
echo number_format($nombre, 2, ',', ' '); // Affiche 1 234,56
echo number_format($nombre, 2, '.', ','); // Affiche 1,234.56
echo number_format($nombre, 3, '.', ''); // Affiche 1234.563

Comment vérifier le format d'un nombre ?
auteurs : Forum PHP, Kerod
On peut utiliser plusieurs méthodes pour le faire :
À noter qu'il est préférable d'utiliser la première solution car elle est bien plus rapide.

Vérification d'un nombre entier
$var = 10;
echo ctype_digit($var); // Affiche TRUE
$var = 10.21;
echo ctype_digit($var); // Affiche FALSE
lien : fr Tutoriel : Initiation aux expressions régulières en PHP, par Guillaume Rossolini

Comment tester si un nombre est impair ?
auteur : Jérôme
Il existe de multiples possibilités d'écriture pour tester la parité d'un nombre. En voici quelques-unes :

En utilisant le modulo
if ($nombre%2 == 1)
    echo "$nombre est impair";
else
    echo "$nombre est pair";
En utilisant la fonction is_float() :
if (is_float($nombre/2))
    echo "impair";
else
    echo "pair";
En utilisant l'opérateur de bit & :
if ($nombre&1)
    echo "$nombre est impair";
else
echo "$nombre est pair";
ou plus succintement
echo "$nombre est ",  $nombre&1 ? "impair" : "pair"  ;


Consultez les autres F.A.Q.


Les sources présentés sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2003  Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com