Nomor PHP
Dalam bab ini kita akan melihat secara mendalam Integer, Float, dan Number Strings.
Nomor PHP
Satu hal yang perlu diperhatikan tentang PHP adalah ia menyediakan konversi tipe data otomatis.
Jadi, jika Anda menetapkan nilai integer ke suatu variabel, tipe variabel itu akan secara otomatis menjadi integer. Kemudian, jika Anda menetapkan string ke variabel yang sama, jenisnya akan berubah menjadi string.
Konversi otomatis ini terkadang dapat merusak kode Anda.
PHP Integer
2, 256, -256, 10358, -179567 semuanya bilangan bulat.
Bilangan bulat adalah bilangan tanpa bagian desimal.
Tipe data integer adalah angka non-desimal antara -2147483648 dan 2147483647 dalam sistem 32 bit, dan antara -9223372036854775808 dan 9223372036854775807 dalam sistem 64 bit. Nilai yang lebih besar (atau lebih rendah) dari ini, akan disimpan sebagai float, karena melebihi batas bilangan bulat.
Catatan: Hal penting lainnya yang perlu diketahui adalah bahwa meskipun 4 * 2.5 adalah 10, hasilnya disimpan sebagai float, karena salah satu operan adalah float (2.5).
Berikut adalah beberapa aturan untuk bilangan bulat:
- Sebuah bilangan bulat harus memiliki setidaknya satu digit
- Bilangan bulat TIDAK boleh memiliki titik desimal
- Bilangan bulat bisa positif atau negatif
- Bilangan bulat dapat ditentukan dalam tiga format: desimal (berbasis 10), heksadesimal (berbasis 16 - diawali dengan 0x) atau oktal (berbasis 8 - diawali dengan 0)
PHP memiliki konstanta standar berikut untuk bilangan bulat:
- PHP_INT_MAX - bilangan bulat terbesar yang didukung
- PHP_INT_MIN - bilangan bulat terkecil yang didukung
- PHP_INT_SIZE - Ukuran bilangan bulat dalam byte
PHP memiliki fungsi berikut untuk memeriksa apakah tipe variabel adalah integer:
- is_int()
- is_integer() - alias is_int()
- is_long() - alias is_int()
Contoh
Periksa apakah jenis variabel adalah bilangan bulat:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
PHP Mengapung
Float adalah angka dengan titik desimal atau angka dalam bentuk eksponensial.
2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 semuanya mengapung.
Tipe data float biasanya dapat menyimpan nilai hingga 1.7976931348623E+308 (bergantung platform), dan memiliki presisi maksimum 14 digit.
PHP memiliki konstanta standar berikut untuk float (dari PHP 7.2):
- PHP_FLOAT_MAX - Angka floating point terbesar yang dapat diwakili
- PHP_FLOAT_MIN - Angka floating point positif terkecil yang dapat diwakili
- - PHP_FLOAT_MAX - Angka floating point negatif terkecil yang dapat diwakili
- PHP_FLOAT_DIG - Jumlah digit desimal yang dapat dibulatkan menjadi float dan back tanpa kehilangan presisi
- PHP_FLOAT_EPSILON - Angka positif terkecil yang dapat diwakili x, sehingga x + 1.0 != 1.0
PHP memiliki fungsi berikut untuk memeriksa apakah tipe variabel adalah float:
- is_float()
- is_double() - alias is_float()
Contoh
Periksa apakah tipe variabel adalah float:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
PHP Infinity
Nilai numerik yang lebih besar dari PHP_FLOAT_MAX dianggap tak terbatas.
PHP memiliki fungsi berikut untuk memeriksa apakah nilai numerik terbatas atau tidak terbatas:
Namun, fungsi PHP var_dump() mengembalikan tipe dan nilai data:
Contoh
Periksa apakah nilai numerik terbatas atau tidak terbatas:
<?php
$x = 1.9e411;
var_dump($x);
?>
PHP NaN
NaN adalah singkatan dari Not a Number.
NaN digunakan untuk operasi matematika yang mustahil.
PHP memiliki fungsi berikut untuk memeriksa apakah suatu nilai bukan angka:
Namun, fungsi PHP var_dump() mengembalikan tipe dan nilai data:
Contoh
Perhitungan yang tidak valid akan mengembalikan nilai NaN:
<?php
$x = acos(8);
var_dump($x);
?>
String Numerik PHP
Fungsi PHP is_numeric() dapat digunakan untuk menemukan apakah suatu variabel adalah numerik. Fungsi mengembalikan nilai true jika variabel adalah angka atau string numerik, salah jika sebaliknya.
Contoh
Periksa apakah variabelnya numerik:
<?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));
?>
Catatan: Dari PHP 7.0: Fungsi is_numeric() akan mengembalikan FALSE untuk string numerik dalam bentuk heksadesimal (misalnya 0xf4c3b00c), karena tidak lagi dianggap sebagai string numerik.
PHP Casting Strings dan Floats to Integers
Terkadang Anda perlu memasukkan nilai numerik ke tipe data lain.
Fungsi (int), (integer), atau intval() sering digunakan untuk mengonversi nilai menjadi integer.
Contoh
Keluarkan float dan string ke integer:
<?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;
?>