Trong chương này, chúng ta sẽ xem xét sâu hơn về Số nguyên, Số thực và Chuỗi số.


Số PHP

Một điều cần chú ý về PHP là nó cung cấp tính năng chuyển đổi kiểu dữ liệu tự động.

Vì vậy, nếu bạn gán một giá trị nguyên cho một biến, kiểu của biến đó sẽ tự động là một số nguyên. Sau đó, nếu bạn gán một chuỗi cho cùng một biến, kiểu sẽ thay đổi thành chuỗi.

Chuyển đổi tự động này đôi khi có thể phá vỡ mã của bạn.


Số nguyên PHP

Một số nguyên là một số không có bất kỳ phần thập phân nào.

2, 256, -256, 10358, -179567 đều là số nguyên. Trong khi 7,56, 10,0, 150,67 là phao.

Vì vậy, kiểu dữ liệu số nguyên là một số không thập phân từ -2147483648 đến 2147483647. Giá trị lớn hơn (hoặc thấp hơn) giá trị này sẽ được lưu trữ dưới dạng số thực vì nó vượt quá giới hạn của một số nguyên.

Một điều quan trọng khác cần biết là ngay cả khi 4 * 2.5 là 10, kết quả được lưu trữ dưới dạng float, vì một trong các toán hạng là float (2.5).

Dưới đây là một số quy tắc cho số nguyên:

  • Một số nguyên phải có ít nhất một chữ số
  • Một số nguyên không được có dấu thập phân
  • Một số nguyên có thể là số dương hoặc số âm
  • Số nguyên có thể được chỉ định ở ba định dạng: thập phân (dựa trên 10), thập lục phân (dựa trên 16 – tiền tố là 0x) hoặc bát phân (dựa trên 8 – tiền tố là 0)

PHP có các chức năng sau để kiểm tra xem kiểu của một biến có phải là số nguyên hay không:

  • is_int ()
  • is_integer () – bí danh của is_int ()
  • is_long () – bí danh của is_int ()

Thí dụ

Kiểm tra xem kiểu của biến có phải là số nguyên hay không:

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

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

PHP Floats

Số thực là một số có dấu thập phân hoặc một số ở dạng số mũ.

2.0, 256.4, 10.358, 7.64E + 5, 5.56E-5 đều là float.

Kiểu dữ liệu float thường có thể lưu trữ giá trị lên đến 1.7976931348623E + 308 (phụ thuộc vào nền tảng) và có độ chính xác tối đa là 14 chữ số.

PHP có các chức năng sau để kiểm tra xem kiểu của một biến có phải là float hay không:

  • is_float ()
  • is_double () – bí danh của is_float ()

Thí dụ

Kiểm tra xem loại biến có phải là float hay không:

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

PHP Infinity

Giá trị số lớn hơn PHP_FLOAT_MAX được coi là vô hạn.

PHP có các chức năng sau để kiểm tra xem giá trị số là hữu hạn hay vô hạn:

  • is_finite ()
  • là vô hạn()

Tuy nhiên, hàm var_dump () trong PHP trả về kiểu dữ liệu và giá trị:

Thí dụ

Kiểm tra xem giá trị số là hữu hạn hay vô hạn:

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

PHP NaN

NaN là viết tắt của Not a Number.

NaN được sử dụng cho các phép toán bất khả thi.

PHP có các chức năng sau để kiểm tra xem giá trị có phải là số không:

  • is_nan ()

Tuy nhiên, hàm var_dump () trong PHP trả về kiểu dữ liệu và giá trị:

Thí dụ

Phép tính không hợp lệ sẽ trả về giá trị NaN:

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

Chuỗi số trong PHP

Hàm is_numeric () trong PHP có thể được sử dụng để tìm xem một biến có phải là số hay không. Hàm trả về true nếu biến là số hoặc chuỗi số, ngược lại là false.

Thí dụ

Kiểm tra xem biến có phải là số không:

<?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));
?>

Lưu ý: Từ PHP 7.0: Hàm is_numeric () sẽ trả về FALSE cho các chuỗi số ở dạng thập lục phân (ví dụ: 0xf4c3b00c), vì chúng không còn được coi là chuỗi số.


PHP Casting Strings và Floats to Integers

Đôi khi bạn cần truyền một giá trị số sang một kiểu dữ liệu khác.

Hàm (int), (integer) hoặc intval () thường được sử dụng để chuyển đổi một giá trị thành một số nguyên.

Thí dụ

Truyền float và string thành số nguyê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;
?>

Số trong PHP

LEAVE A REPLY

Please enter your comment!
Please enter your name here