Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


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 : Kerod
Il peut s'avérer utile, dans un calcul, de fixer le nombre de chiffres après la virgule. Pour ce faire, on utilise les fonctions de la bibliothèque BCMath, qui sont les suivantes :
  • bcadd() qui additionne et renvoie le résultat sous forme de chaîne de caractères.
  • bcsub() qui soustrait et renvoie le résultat sous forme de chaîne de caractères.
  • bcmul() qui multiplie et renvoie le résultat sous forme de chaîne de caractères.
  • bcdiv() qui divise et renvoie le résultat sous forme de chaîne de caractères.
  • bcsqrt() qui renvoie la racine carrée de l'opérande sous forme de chaîne de caractères.

Exemple :
$nb1 = '22.3650';
$nb2 = '13';               
echo bcadd($nb1, $nb2); //Affiche 35
echo bcadd($nb1, $nb2, 1); //Affiche 35.3 (fixé à 1 chiffre après la virgule)
echo bcsub($nb1, $nb2); //Affiche 9
echo bcsub($nb1, $nb2, 2); //Affiche 9.36 (fixé à 2 chiffres après la virgule)
echo bcmul($nb1, $nb2); //Affiche 290
echo bcmul($nb1, $nb2, 4); //Affiche 290.7450 (fixé à 4 chiffres après la virgule)
echo bcdiv($nb1, $nb2, 5); //Affiche 1.72038 (fixé à 5 chiffres après la virgule)
echo bcsqrt($nb1, 2); //Affiche 4.72 (fixé à 2 chiffres après la virgule)

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 : Exemple :
$var = 15.32;
echo is_float($var); // Affiche TRUE
$var = 15;
echo is_float($var); // Affiche FALSE
$var = 15,10;
echo is_float($var); // Affiche FALSE
  • À l'aide de la fonction gettype qui retourne le type de la variable PHP.
Exemple :
Vérification d'un entier soit d'un flottant
<?
$Var = 15.321;
if ((gettype($Var)=="integer") or (gettype($Var)=="double")) 
{
  echo "C'est bon";
}
else
{
  echo "C'est pas bon";
}
?>
À noter qu'il est préférable d'utiliser la première solution car elle est bien plus rapide. Exemple :
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"  ;

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre 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. Tout 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érets. 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