3 commenti php

La gestione e manipolazione dei dati numerici è un operazione molto diffusa e che può essere gestita atraverso l'utilizzo di alcune funzioni. In altra sede si è già parlato della sintassi che che devono assumere la variabili numeriche e delle funzioni per il controllo dei dati numerici. In questa sede vedremo come generare numeri casuali, come eseguire arrotondamenti e come formattare i numeri.

 

NUMERI CASUALI

Per generale numeri casuali con php la funzione da impiegare è rand(): essa accetta due parametri opzianali, il valore minimo e il valore massimo.

Di default il valore minimo è 0 mentre quello massimo è conoscibile tramite la funzione getrandmax().

<?php
echo rand(1,10); // un numero casuale compreso fra 1 e 10
?>

 

Nel caso in cui si desideri un numero casuale con un determinato numero di cifre:

<?php
function random_number($cifre)
	{
	$max_value = bcpow(10, $cifre)-1;
	$min_value = bcpow(10, $cifre-1);
	//echo $min_value. ' - ' .$max_value . '<br />';
	return rand($min_value, $max_value);
	}

echo random_number(3); // numero casuale di 3 cifre
?>

 

ARROTONDAMENTI

Per eseguire gli arrotondameni di numeri decimali php mette a disposizione tre funzioni: 

  • ceil(): arrotonda per eccesso ad un numero intero; 
  • floor(): arrotonda per difetto ad un numero intero;
  • round(): essa a differenza delle precedenti esegue un arrottondamento che avviene per difetto o per eccesso a seconda delle cifre scartate; essa prevede 3 parametri di cui due opzionali; il primo parametro, obbligatorio, è il numero da arrotondare; il secondo, opzionale è il numeri di cifre decimali (dopo la virgola) da conservare, di default pari a zero; il terzo serve per gestire gli arrotondamenti incerti in virù del fatto che terminano per 5 (vedi esempio), di default PHP_ROUND_HALF_UP.
<?php
echo ceil(2.35); // 3
echo floor(2.35); // 2
echo round(2.35); // 2 
echo round(2.65); // 3
echo round(2.35, 1); // 2.4
echo round(2.35, 1, PHP_ROUND_HALF_UP); // 2.4
echo round(2.35, 1, PHP_ROUND_HALF_DOWN); // 2.3
echo round(2.35, 1, PHP_ROUND_HALF_EVEN); // 2.4
echo round(2.35, 1, PHP_ROUND_HALF_ODD); // 2.3
?>

 

FORMATTAZIONE DEI NUMERI

A fini di visualizzazione si ha la necessità di far si che i numeri abbiano una determinata formattazione. Ad esempio separare le migliaia con un punto (o con uno spazio) e/o i decimali con una virgola. A questo scopo la funzione che è destinata a tale scopo è number_format(). Essa accetta uno, due o quattro parametri (non 3). Il primo è il numero che si vuole formattare. Il secondo parametro serve ad impostare il numero di decimali da considerare, di default è 0 (zero) e quindi il numero sarà formattato senza decimali. Il terzo serve per impostare il carattere separatore tra la parte intera e quella decimale, di default è il punto.Il quarto parametro serve per impostare il carattere separatore nelle migliaia, di default è la virgola.

Attenzione: il terzo e il quarto parametro accettano un unico carattere separatore (un unico byte).
Giova inoltre sottolineare che la funzione darà come return una stringa la quale non è utilizzabile per eseguire operazioni matematiche successive. E' una funzione che, quindi, deve essere impiegata principalmente nella stampa a video. Vediamone di seguito alcuni esempi:

<?php
$numero = 1120.2536;
$num1 = number_format($numero); // 1,120
$num2 = number_format($numero, 2); // 1,120.25
$num3 = number_format($numero, 2, ',', ' '); // 1 120,25
$num4 = number_format($numero, 2, ',', '.'); // 1.120,25
?>
Olimpio Romanella

Sono un appassionato di Web Developing con un particolare debole per php. Mi dedico principalmente dello sviluppo back-end ed in particolare programmazione lato server con php, sviluppo di database relazionali MySql e progettazione di CMS di piccole e medie dimensioni.

Mi avvalgo del framework javascript Jquery, utilizzando molti dei suoi plugin e nei dei miei progetti utilizzo spesso il framework MVC Codeigniter.

3 Commenti presenti

avatar Olimpio Romanella

Olimpio Romanella

17 March 2015 ore 19:27

@juss: metti i numeri in un array. A questo punto si tratta di estrarre un elemento casuale dell'array con la funzione array_rand()

avatar Marco

Marco

17 March 2015 ore 17:21

@juss:

se vuoi fare con il random credo che devi fare due numeri alla volta...ma a me hanno detto che devi utilizzare un altro linguaggio...

avatar juss

juss

13 March 2015 ore 19:12

Ma se io voglio estrarre casualmente solo i numeri 5 7 11 23 e 32 come devo impostare il codice php?