0

Parte intera di un numero in php

Postato il 18 settembre 2011. Categoria Programmazione Tag php
Bookmark this on Delicious
Share on FriendFeed
Bookmark this on Digg
Share on LinkedIn
Share on StumbleUpon

Partiamo da un esempio pratico: dati un numero di elementi n, quanti gruppi ottengo se ogni gruppo ha m elementi?

Ovviamente la soluzione è data dividendo n per m, ma il numero è decimale e a noi ci interessa la parte intera di questo numero. Per implementarla in php ho a disposizione diverse funzioni: floor, ceil, round e intval

 
Tramite la funzione floor() otteniamo il valore intero immediatamente inferiore; la funzione arrotonda il valore, se necessario.

1
float floor ( float $value )
1
2
3
4
5
<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>

 
Tramite la funzione ceil() otteniamo il valore intero superiore; la funzione arrotonda il valore, se necessario.

1
float ceil ( float $value )
1
2
3
4
5
<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
echo ceil(-3.14);  // -3
?>

 
La funzione round() restituisce il valore arrotondato con un numero di cifre dopo la virgola decimale indicato come parametro. Questo parametro può essere negativo o zero (predefinito).

1
float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )
1
2
3
4
5
6
7
8
9
10
11
<?php
echo round(3.4);         // 3
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(9.5, 0, PHP_ROUND_HALF_UP);   // 10
echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10
echo round(9.5, 0, PHP_ROUND_HALF_ODD);  // 9
?>

 
La funzione intval() restituisce il valore intero della variabile, utilizzando la base specificato per la conversione (il default è in base 10). intval () non deve essere utilizzato su oggetti, come in questo modo si emette un errore di livello E_NOTICE e ritorna 1.

1
int intval ( mixed $var [, int $base = 10 ] )
1
2
3
4
5
6
7
8
9
<?php
$a1 = 10.4;
$a2 = -12.5;
$a3 = 44.1238503;

print intval($a1);   // returns 10
print intval($a2);   // returns -12
print intval($a3);   // returns 44
?>

Riferimenti
floor – PHP manual
ceil- PHP manual
round- PHP manual
intval- PHP manual

Leave a Comment





*