Lezioni di PHP - Lezione 4 - Variabili numeriche in PHP
Nella lezione precedente abbiamo parlato delle variabili di tipo stringa; ora diamo uno sguardo alle variabili numeriche. Il tipo più semplice di numero è il numero intero.
Numeri interi in PHP
I numeri interi sono tutti i numeri appartenenti all’intervallo [-2 147 483 648, …, -4, -3, -2, -1, 0, 1, 2, 3, 4, …, 2 147 483 647], cioè da -2147483648 a 2147483647. Questo limite esiste perché la rappresentazione di un numero intero richiede 32 bit.
Come tutte le altre variabili in PHP, anche i numeri interi si definiscono tramite un’assegnazione semplice:
<?php $x = 5; $y = -8; ?>
Oltre ai numeri della tradizionale base 10, PHP consente di usare anche altre basi numeriche (ottale, esadecimale, ecc.):
<?php $i = 456; // numero decimale $i = -895; // numero negativo $i = 0121; // numero ottale (equivale a 81 in base 10) $i = 0x1B; // numero esadecimale (equivale a 27 in base 10) ?>
Oltre ai numeri interi, in PHP esistono anche i numeri decimali.
Numeri decimali (float) in PHP
I numeri decimali in PHP si scrivono come numeri con la parte frazionaria separata dal punto:
$pi = 3.14;
La parte decimale è separata da un punto (.
), ma non va confusa con il punto usato per concatenare stringhe.
È anche possibile scrivere i numeri in notazione scientifica:
$b = 3.2e5; $c = 9E-11;
I numeri decimali (o numeri a virgola mobile, floating point) occupano 64 bit di memoria, cioè il doppio rispetto ai numeri interi.
Di solito, i numeri decimali si ottengono come risultato di una divisione:
$a = 1/3; print $a;
Il risultato sarà:
0.333333333333
Tuttavia, a volte il risultato può sorprendere:
$a = 1/3; $a = $a * 3; print $a;
Il risultato non sarà 0.999999999
, ma esattamente 1
.
Se provassi a fare lo stesso con una calcolatrice (dividere 1 per 3 e poi moltiplicare per 3), probabilmente perderesti qualche millesimo o miliardesimo a causa della precisione limitata. PHP invece gestisce la precisione in modo più accurato e “ricorda” l’operazione, evitando la perdita di precisione.