PHP: Numeri

In questa pagina approfondiremo Integer, Float e Stringhe numeriche. Una cosa da notare su PHP è che fornisce la conversione automatica dei tipi di dati. Pertanto, se si assegna un valore intero a una variabile, il tipo di tale variabile sarà automaticamente un numero intero. Quindi, se si assegna una stringa alla stessa variabile, il tipo cambierà in una stringa. Questa conversione automatica a volte può violare il codice.

Integer

Un numero intero è un numero senza alcuna parte decimale.

2, 256, -256, 10358, -179567 sono tutti numeri interi. Mentre 7.56, 10.0, 150.67 sono float.

Pertanto, un tipo di dati intero è un numero non decimale compreso tra -2147483648 e 2147483647. Un valore maggiore (o inferiore) di questo, verrà memorizzato come float, poiché supera il limite di un numero intero.

Un’altra cosa importante da sapere è che anche se 4 * 2.5 è 10, il risultato viene memorizzato come float, poiché uno degli operandi è un float (2.5).

Ecco alcune regole per gli interi:

  • Un numero intero deve contenere almeno una cifra
  • Un numero intero non deve avere un punto decimale
  • Un numero intero può essere positivo o negativo
  • I numeri interi possono essere specificati in tre formati: decimale (basato su 10), esadecimale (basato su 16 – con prefisso 0x) o ottale (basato su 8 – con prefisso 0)

PHP ha le seguenti funzioni per verificare se il tipo di una variabile è intero:

  • is_int ()
  • is_integer () – alias di is_int ()
  • is_long () – alias di is_int ()

Per esempio … controlliamo se il tipo di una variabile è intero:

<?php
$x = 5985;
var_dump(is_int($x));

$x = 59.85;
var_dump(is_int($x));
?>

Floats

Un float è un numero con un punto decimale o un numero in forma esponenziale.

2.0, 256.4, 10.358, 7.64E + 5, 5.56E-5 sono tutti float.

Il tipo di dati float può comunemente memorizzare un valore fino a 1.7976931348623E + 308 (dipendente dalla piattaforma) e avere una precisione massima di 14 cifre.

PHP ha le seguenti funzioni per verificare se il tipo di una variabile è float:

  • is_float ()
  • is_double () – alias di is_float ()

Per esempio … controlliamo se il tipo di una variabile è float:

<?php
$x = 10.365;
var_dump(is_float($x));
?>

Infinity

Un valore numerico maggiore di PHP_FLOAT_MAX è considerato infinito.

PHP ha le seguenti funzioni per verificare se un valore numerico è finito o infinito:

  • is_finite ()
  • is_infinite ()

Tuttavia, la funzione var_dump () di PHP restituisce il tipo e il valore di dati:

<?php
$x = 1.9e411;
var_dump($x);
?>

NaN

NaN sta per Not a Number.

NaN è usato per operazioni matematiche impossibili.

PHP ha le seguenti funzioni per verificare se un valore non è un numero:

  • is_nan ()

Tuttavia, la funzione var_dump () di PHP restituisce il tipo e il valore di dati:

<?php
$x = acos(8);
var_dump($x);
?>

Stringhe numeriche

La funzione is_numeric() di PHP può essere utilizzata per scoprire se una variabile è numerica. La funzione restituisce true se la variabile è un numero o una stringa numerica, altrimenti false. Per esempio:

<?php
$x = 5985;
var_dump(is_numeric($x));

$x = "5985";
var_dump(is_numeric($x));

$x = "59.85" + 100;
var_dump(is_numeric($x));

$x = "Hello";
var_dump(is_numeric($x));
?>

Convertire numeri

A volte è necessario trasmettere un valore numerico in un altro tipo di dati.

Le funzioni int, integer o intval() vengono spesso utilizzate per convertire un valore in un numero intero.

<?php
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;

echo "<br>";

// Cast string to int
$x = "23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>