Hướng dẫn dùng 1e10 number trong PHP

Trong PHP cung cấp chuyển đổi kiểu dữ liệu tự động, ví dụ 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. Điều này bạn phải chú ý, vì điều này có thể dẫn đến chương trình của bạn bị lỗi.

I. Số nguyên Integers trong PHP

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

- Ví dụ 2, 256, -256, 10358, -179567 đều là số nguyên. Trong khi 7,56, 10,0, 150,67 là số thực(Float).

- 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(Float) vì nó vượt quá giới hạn của một số nguyên(Integers).

Lưu ý: Ngay cả khi phép tính 4 * 2.5 là 10 thì kết quả vẫn được lưu trữ dưới dạng số thực(Float), vì một trong các toán hạng là số thực(Float) 2.5.

- 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ũng cung cấp một số function để kiểm tra một biến có phải là số nguyên không đó là: 

  • is_int()
  • is_integer()
  • is_long()

- Ví dụ

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

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

II. Số thực Float trong PHP

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

- Ví dụ 2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 đều là số thực.

- PHP cũng cung cấp một số function để kiểm tra một biến có phải là số thực không đó là: 

  • is_float()
  • is_double()

- Ví dụ

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

III. Chuỗi số Numerical Strings trong PHP

- Trong PHP cung cấp function is_numeric() để tìm xem biến đó là chuỗi hay là số. Nếu function trả về giá trị TRUE thì là kiểu số(Number), FALSE thì là kiểu chuỗi(String).

- Ví dụ

<?php
// Kiểm tra kiểu String hay Number 
$x = 5985;
var_dump(is_numeric($x));  // Trả về: bool(true)

echo "<br>";

$x = "5985";
var_dump(is_numeric($x));  // Trả về: bool(true)

echo "<br>";

$x = "59.85" + 100;
var_dump(is_numeric($x));  // Trả về: bool(true)

echo "<br>";

$x = "Hello";
var_dump(is_numeric($x));  // Trả về: bool(false)
?>  

IV. Ép kiểu dữ liệu trong PHP

- Trong một chương trình nào đó đôi khi bạn cần chuyển đổi kiểu dữ liệu để dể tính toán thì PHP có cung cấp function để bạn làm việc đó.

- Ví dụ function (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. Tương tự như số nguyên thì số thực cũng có function (float) để ép kiểu.

- Ví dụ 

<?php
// Chuyển kiểu dữ liệu từ float sang int 
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
  
echo "<br>";

// Chuyển kiểu dữ liệu từ string sang int 
$x = "23465.768";
$int_cast = (int)$x;
echo $int_cast;

// Function intval() trả về số nguyên nếu thành công, trả về 0 nếu thất bại. Nếu bạn truyền vào một mảng rỗng thì sẽ trả về 0, mảng không rỗng sẽ trả về 1.

echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(4200000000000000000);   // 0
echo intval('4200000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('hello', 'word'));     // 1

?>  

Bài viết nên đọc

Trên đây là những kiến thức từ kinh nghiệm bản thân mình nên các bạn có thể tham khảo. Nếu các bạn có góp ý cho mình thì hãy gửi vào đây, mình sẵn sàng nhận ý kiến đóng góp từ các bạn.

Trong bài này, chúng ta sẽ tìm hiểu kỹ về các kiểu dữ liệu số (number) trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP. Và các bạn cần đọc lại bài Các kiểu dữ liệu (data type) trong PHP để nắm sơ lược về kiểu dữ liệu IntegerFloat trong PHP.

1. Kiểu dữ liệu số nguyên (Integer) trong PHP

Trong hệ thống 32bit, kiểu Integer lưu trữ một số nguyên từ -2147483648 (2^31-1) đến 2147483647 (2^31). Trong hệ thống 64bit, kiểu Integer lưu trữ một số nguyên từ -9223372036854775808 (2^63-1) đến 9223372036854775807 (2^63).

Lưu ý: Một giá trị nằm ngoài phạm vi lưu trữ trên sẽ được lưu trữ với kiểu dữ liệu Float.

PHP có các hằng số (constant) được xác định trước cho các số nguyên:

  • PHP_INT_MAX: Số nguyên lớn nhất được hỗ trợ
  • PHP_INT_MIN: Số nguyên nhỏ nhất được hỗ trợ
  • PHP_INT_SIZE: Kích thước của một số nguyên tính theo byte

PHP có các function hỗ trợ kiểm tra xem một biến có đang lưu trữ số nguyên hay không:

  • is_int()
  • is_integer()
  • is_long()
<?php
echo "PHP_INT_MAX: ".PHP_INT_MAX."<br>";
echo "PHP_INT_MIN: ".PHP_INT_MIN."<br>";
echo "PHP_INT_SIZE: ".PHP_INT_SIZE." bytes<br>";
$x = 5985;
echo 'Is $x Integer? ';
var_dump(is_int($x));
$y = 59.85;
echo '<br>Is $y Integer? ';
var_dump(is_int($y));
?>
Kết quả
PHP_INT_MAX: 9223372036854775807
PHP_INT_MIN: -9223372036854775808
PHP_INT_SIZE: 8 bytes
Is $x Integer? bool(true)
Is $y Integer? bool(false)

2. Kiểu dữ liệu số thực (Float) trong PHP

Kiểu dữ liệu Float có thể lưu trữ giá trị lên đến 1.7976931348623E+308 và có tối đa là 14 chữ số ở phần thập phân.

PHP có các hằng số (constant) được xác định trước cho các số thực:

  • PHP_FLOAT_MAX: Số thực lớn nhất có thể lưu trữ
  • PHP_FLOAT_MIN: Số thực nhỏ nhất có thể lưu trữ
  • -PHP_FLOAT_MAX: Số thực âm (negative Float) nhỏ nhất có thể lưu trữ
  • PHP_FLOAT_DIG: Số chữ số thập phân có thể được làm tròn thành một số Float
  • PHP_FLOAT_EPSILON: Số x dương nhỏ nhất x + 1.0! = 1.0
<?php
echo "PHP_FLOAT_MAX: ;".PHP_FLOAT_MAX."<br>";
echo "PHP_FLOAT_MIN: ".PHP_FLOAT_MIN."<br>";
echo "-PHP_FLOAT_MAX: ;".-PHP_FLOAT_MAX."<br>";
echo "PHP_FLOAT_DIG: ".PHP_FLOAT_DIG."<br>";
echo "PHP_FLOAT_EPSILON: ".PHP_FLOAT_EPSILON."<br>";
$x = 5985;
echo 'Is $x Float? ';
var_dump(is_float($x));
$y = 59.85;
echo '<br>Is $y Float? ';
var_dump(is_float($y));
?>
Kết quả
PHP_FLOAT_MAX: ;1.7976931348623E+308
PHP_FLOAT_MIN: 2.2250738585072E-308
-PHP_FLOAT_MAX: ;-1.7976931348623E+308
PHP_FLOAT_DIG: 15
PHP_FLOAT_EPSILON: 2.2204460492503E-16
Is $x Float? bool(false)
Is $y Float? bool(true)

Số vô cực trong PHP (PHP Infinity)

Một giá trị lớn hơn PHP_FLOAT_MAX được coi là số vô cực (infinity). PHP có các function để kiểm tra xem một giá trị số là vô hạn hay hữu hạn:

  • is_finite()
  • is_infinite()
<?php
$x = 1.9e411;
echo 'Is $x infinite? ';
var_dump(is_infinite($x));
echo "<br>";
var_dump($x);
?>
Kết quả
Is $x infinite? bool(true)
float(INF)

3. Not a Number trong PHP (PHP NaN)

NaN là viết tắt của Not a Number. PHP cung cấp sẵn hàm is_nan() để kiểm tra nếu một giá trị không phải là một số.

<?php
$x = 200;
$y = acos(1.01);
var_dump($x);
echo "<br>";
var_dump($y);
?>
Kết quả
int(200)
float(NAN)

4. Chuỗi số trong PHP (PHP Numerical Strings)

Một String trong PHP có thể chỉ bao gồm các chữ số. Hàm is_numeric() được sử dụng để xác định xem một String có chỉ gồm toàn các chữ số không. Hàm is_numeric() trả về true nếu biến là một số hoặc một chuỗi số, ngược lại trả về false.

<?php
$x = 5985;
echo "Is 5985 number? ";
var_dump(is_numeric($x));
echo "<br>";
$x = "5985";
echo "Is '5985' number? ";
var_dump(is_numeric($x));
echo "<br>";
$x = "59.85" + 100;
echo "Is '5985' + 100 number? ";
var_dump(is_numeric($x));
echo "<br>";
$x = "gochocit.com";
echo "Is 'gochocit.com' number? ";
var_dump(is_numeric($x));
echo "<br>";
$x = 0xf4c3b00c;
echo "Is 0xf4c3b00c number? ";
var_dump(is_numeric($x));
echo "<br>";
$x = "0xf4c3b00c";
echo "Is '0xf4c3b00c' number? ";
var_dump(is_numeric($x));
?>
Kết quả
Is 5985 number? bool(true)
Is '5985' number? bool(true)
Is '5985' + 100 number? bool(true)
Is 'gochocit.com' number? bool(false)
Is 0xf4c3b00c number? bool(true)
Is '0xf4c3b00c' number? bool(false)

5. Ép kiểu String và Float sang Integer trong PHP

Chúng ta có thể ép kiểu StringFloat sang Integer trong PHP.

<?php
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast."<br>";
// Cast string to int
$x = "23465.768";
$int_cast = (int)$x;
echo $int_cast."<br>";

$y = "2345a.6789";
$int_cast = (int)$y;
echo $int_cast;
?>
Kết quả
23465
23465
2345

Hàm (int), (integer) hoặc intval() thường được sử dụng để ép kiểu một value sang Integer.

  • Lập trình điều khiển DC motor với board mạch Arduino
  • Tính kế thừa (inheritance) trong PHP
  • Kết nối hệ quản trị cơ sở dữ liệu MySQL trong Python
  • Một số kỹ thuật lập trình với kiểu dữ liệu cấu trúc (struct) trong C++
  • Kiểu dữ liệu enum trong C++