Bu fəsildə biz tam ədədlər, floats və number strings haqqında ətraflı baxacağıq.
php nömrələri
php ilə bağlı diqqət yetirməli bir şey, məlumat növünün avtomatik çevrilməsini təmin etməsidir.
beləliklə, dəyişənə tam dəyər təyin etsəniz, həmin dəyişənin növü avtomatik olaraq tam ədəd olacaqdır. sonra eyni dəyişənə sətir təyin etsəniz, növ sətirə dəyişəcək.
bu avtomatik çevrilmə bəzən kodunuzu poza bilər.
php tam ədədləri
2, 256, -256, 10358, -179567 hamısı tam ədədlərdir.
tam ədəd ondalık hissəsi olmayan ədəddir.
tam ədəd məlumat növü 32 bit sistemlərdə -2147483648 və 2147483647, 64 bit sistemlərdə -9223372036854775808 və 9223372036854775807 arasında olan qeyri-onluq ədəddir. bundan böyük (və ya aşağı) dəyər tam ədədin limitini keçdiyi üçün float kimi saxlanılacaq.
qeyd: bilmək üçün vacib olan başqa bir şey odur ki, 4 * 2.5 10 olsa belə, nəticə float kimi saxlanılır, çünki operandlardan biri floatdır (2.5).
tam ədədlər üçün bəzi qaydalar bunlardır:
tam ədədin ən azı bir rəqəmi olmalıdır
tam ədəddə onluq nöqtə olmalidir
tam ədəd müsbət və ya mənfi ola bilər
tam ədədlər üç formatda göstərilə bilər: onluq (10 əsaslı), onaltılıq (16 əsaslı - 0x ilə prefiks) və ya səkkizlik (8 əsaslı - 0 ilə prefiks)
php tam ədədlər üçün aşağıdakı əvvəlcədən təyin edilmiş sabitlərə malikdir:
php_int_max - dəstəklənən ən böyük tam ədəd
php_int_min - dəstəklənən ən kiçik tam ədəd
php_int_size - baytlarda tam ədədin ölçüsü
php dəyişənin növünün tam ədəd olub olmadığını yoxlamaq üçün aşağıdakı funksiyalara malikdir:
is_int()
is_integer() - is_int() ləqəbi
is_long() - is_int() ləqəbi
misal
dəyişən növünün tam ədəd olub olmadığını yoxlayın:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
php floats
float, ondalık nöqtəsi və ya eksponensial formada olan bir ədəddir.
2.0, 256.4, 10.358, 7.64e+5, 5.56e-5 hamısı üzəndir.
şamandıra məlumat növü adətən 1,7976931348623e+308 (platformadan asılıdır) dəyəri saxlaya bilər və maksimum 14 rəqəm dəqiqliyinə malikdir.
php-də float üçün əvvəlcədən təyin edilmiş aşağıdakı sabitlər var (php 7.2-dən):
php_float_max - ən böyük təmsil edilə bilən üzən nöqtə nömrəsi
php_float_min - ən kiçik təmsil edilə bilən müsbət üzən nöqtə nömrəsi
php_float_max - ən kiçik təmsil oluna bilən mənfi üzən nöqtə nömrəsi
php_float_dig - dəqiqlik itkisi olmadan float və arxaya yuvarlaqlaşdırıla bilən onluq rəqəmlərin sayı
php_float_epsilon - ən kiçik təmsil olunan müsbət ədəd x, belə ki, x + 1.0 != 1.0
php dəyişənin növünün float olub olmadığını yoxlamaq üçün aşağıdakı funksiyalara malikdir:
is_float()
is_double() - is_float() ləqəbi
misal
dəyişən növünün float olub olmadığını yoxlayın:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
php infinity
php_float_max-dən böyük olan rəqəmsal dəyər sonsuz hesab olunur.
php rəqəmsal dəyərin sonlu və ya sonsuz olduğunu yoxlamaq üçün aşağıdakı funksiyalara malikdir:
is_finite()
sonsuzdur()
bununla belə, php var_dump() funksiyası məlumat növünü və dəyərini qaytarır:
misal
rəqəmsal dəyərin sonlu və ya sonsuz olduğunu yoxlayın:
<?php
$x = 1.9e411;
var_dump($x);
?>
php nan
nan nömrə deyil deməkdir.
nan qeyri-mümkün riyazi əməliyyatlar üçün istifadə olunur.
php dəyərin ədəd olmadığını yoxlamaq üçün aşağıdakı funksiyalara malikdir:
is_nan()
bununla belə, php var_dump() funksiyası məlumat növünü və dəyərini qaytarır:
misal
yanlış hesablama nan dəyərini qaytaracaq:
<?php
$x = acos(8);
var_dump($x);
?>
php ədədi sətirləri
php is_numeric() funksiyası dəyişənin ədədi olub olmadığını tapmaq üçün istifadə edilə bilər. dəyişən rəqəm və ya rəqəmli sətirdirsə, funksiya doğru, əks halda yalan qaytarır.
misal
dəyişənin rəqəmsal olub olmadığını yoxlayın:
<?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));
?>
qeyd: php 7.0-dan: is_numeric() funksiyası onaltılıq formada (məsələn, 0xf4c3b00c) rəqəmli sətirlər üçün false qaytaracaq, çünki onlar artıq rəqəmli sətirlər kimi qəbul edilmir.
php tökmə sətirləri və tam ədədlərə üzənlər
bəzən rəqəmi başqa bir məlumat növünə köçürmək lazımdır.
dəyəri tam ədədə çevirmək üçün çox vaxt (int), (integer) və ya intval() funksiyalarından istifadə olunur.
misal
float və sətri tam ədədə köçürün:
<?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;
?>