Hướng dẫn dùng format decimal trong PHP

Hàm number_format() sẽ định dạng lại số theo hàng nghìn. Hàm trả về là số đã được định dạng. Cụ thể, hàm sẽ thêm vào một dấu phẩy(,) để ngăn cách các nhóm hàng nghìn. Ví dụ 1000000 sẽ trở thành 1,000,000.

Hướng dẫn dùng format decimal trong PHP

Hướng dẫn dùng format decimal trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú phápstring number_format ( float $number , $decimals = 0 , $dec_point = "." , $thousands_sep = "," );

Trong đó:

  • $number là số cần định dạng.
  • $decimals là số chữ số thập phân muốn lấy, mặc định sẽ là 0.
  • $dec_point là kí tự phân cách với phần thập phân, mặc định là dấu " . ".
  • $thousands_sep là kí tự phân cách giữa các nhóm hàng nghìn, mặc định là dấu " , ".

Ví dụ

Code

$number = 24082017.56;

// trường hợp có 1 tham số
$format_number_1 = number_format($number);
echo "1 tham số - " . $format_number_1 . "<br />";

// trường hợp có 4 tham số
$format_number_4 = number_format($number, 2, ',', ' ');
echo "4 tham số - " . $format_number_4;

Kết quả

1 tham số - 24,082,018
4 tham số - 24 082 017,56

Tham khảo: php.net

Bài viết này được đăng tại [free tuts .net]

A number of comments on this page have missed the fundamental point that the question is ill-formed. Floating point is a binary representation, designed for efficient calculations; it fundamentally has no notion of decimal digits of any sort.

Nội dung chính

  • 1. PHP Integers (Dữ liệu kiểu Số nguyên)
  • 2. PHP String (Dữ liệu kiểu Chuỗi)
  • 3. Kiểu Float hoặc Double
  • 4. Dữ liệu kiểu Boolean
  • 5. Dữ liệu kiểu Mảng (Array) trong PHP
  • 6. Dữ liệu kiểu đối tượng (Object) trong PHP
  • 8. PHP Resources
  • 9. Tổng kết

Nội dung chính

  • 1. PHP Integers (Dữ liệu kiểu Số nguyên)
  • 2. PHP String (Dữ liệu kiểu Chuỗi)
  • 3. Kiểu Float hoặc Double
  • 4. Dữ liệu kiểu Boolean
  • 5. Dữ liệu kiểu Mảng (Array) trong PHP
  • 6. Dữ liệu kiểu đối tượng (Object) trong PHP
  • 8. PHP Resources
  • 9. Tổng kết

So asking this:

How do I get "0.00" instead of "0" and still have the data type as a float?

Is like asking this:

How do I get "deux" instead of "zwei" and still have the language as English?

Whether you specify the input as "2", or "2.0", or "2.000000000", if you ask for a floating point value, what will be stored in memory is this (in IEEE 754 double-precision):

0100000000000000000000000000000000000000000000000000000000000000

If you convert to an integer, the value stored in memory is this (assuming a 64-bit system):

0000000000000000000000000000000000000000000000000000000000000010

(Note that "integer" in this context is not just a synonym for "whole number", it is a specific data type, with its own rules for how values should be represented in memory.)

By contrast, the string "2" would look like this:

00110010

And the string "2.00" would look like this:

00110010001011100011000000110000

(In a PHP program, there would actually be additional information in memory, such as an indicator of the type, but that's not really relevant here.)


So, the question can only be answered by rephrasing it as a conversion: given the input of a floating point number, how do I choose a string representation which has a fixed number of decimals.

As others have pointed out, the answer to that is to use number_format.


The question doesn't mention JSON, but several comments do, so I will also point out that PHP's json_encode function has an option JSON_PRESERVE_ZERO_FRACTION, which will format a floating point number that happens to be a whole number with a trailing ".0", for instance:

$example = ['int' => 2, 'float' => 2.0];
echo json_encode($example);
# => {"int":2,"float":2}
echo json_encode($example, JSON_PRESERVE_ZERO_FRACTION);
# => {"int":2,"float":2.0}

Again, note that this is a string representation of the value.

Nội dung chính

  • 1. PHP Integers (Dữ liệu kiểu Số nguyên)
  • 2. PHP String (Dữ liệu kiểu Chuỗi)
  • 3. Kiểu Float hoặc Double
  • 4. Dữ liệu kiểu Boolean
  • 5. Dữ liệu kiểu Mảng (Array) trong PHP
  • 6. Dữ liệu kiểu đối tượng (Object) trong PHP
  • 8. PHP Resources
  • 9. Tổng kết

Nội dung chính

  • 1. PHP Integers (Dữ liệu kiểu Số nguyên)
  • 2. PHP String (Dữ liệu kiểu Chuỗi)
  • 3. Kiểu Float hoặc Double
  • 4. Dữ liệu kiểu Boolean
  • 5. Dữ liệu kiểu Mảng (Array) trong PHP
  • 6. Dữ liệu kiểu đối tượng (Object) trong PHP
  • 8. PHP Resources
  • 9. Tổng kết

Trong hướng dẫn này, bạn sẽ tìm hiểu về các kiểu dữ liệu có sẵn trong PHP như Int, String, Float, Number, Double, Boolean, Array, Object…

Các kiểu dữ liệu trong PHP

Các giá trị được gán cho một biến PHP có thể có các loại dữ liệu khác nhau bao gồm các kiểu chuỗi (string) và số (number) đơn giản đến các loại dữ liệu phức tạp hơn như mảng (array) và đối tượng (object)

1. PHP Integers (Dữ liệu kiểu Số nguyên)

Integers là số nguyên, không có dấu thập phân (…, -2, -1, 0, 1, 2, …). Các số nguyên có thể được chỉ định theo số thập phân (base 10), thập lục phân (base 16 – có tiền tố là 0x) hoặc số bát phân (base 8 – có tiền tố 0), tùy chọn đứng trước một dấu ( – hoặc +).

<?php $a = 123; // decimal number var_dump($a); echo "<br>"; $b = -123; // a negative number var_dump($b); echo "<br>"; $c = 0x1A; // hexadecimal number var_dump($c); echo "<br>"; $d = 0123; // octal number var_dump($d); ?>

Note: Kể từ PHP 5.4 trở lên, bạn cũng có thể chỉ định các số nguyên trong ký hiệu nhị phân (base 2). Để sử dụng ký hiệu nhị phân đứng trước số có 0b (ví dụ: $ var = 0b11111111;).

2. PHP String (Dữ liệu kiểu Chuỗi)

String là chuỗi các ký tự, trong đó mỗi ký tự giống như một byte.

Một chuỗi có thể chứa các chữ cái, số và ký tự đặc biệt và nó có thể lớn tới 2GB (tối đa 2147483647 byte).

Cách đơn giản nhất để chỉ định một chuỗi là đặt nó trong các dấu ngoặc đơn (ví dụ: ‘Hello world!’), Tuy nhiên, bạn cũng có thể sử dụng dấu ngoặc kép (”
Hello world”).

<?php $a = 'Hello world!'; echo $a; echo "<br>"; $b = "Hello world!"; echo $b; echo "<br>"; $c = 'Stay here, I\'ll be back.'; echo $c; ?>

Bạn sẽ được học nhiều hơn về String trong series tự học PHP này trong các bài sau.

3. Kiểu Float hoặc Double

Các số có dấu phẩy động (còn được gọi là “floats”, “double” hoặc “real numbers”) là các số thập phân hoặc phân số, như được minh họa trong ví dụ dưới đây.

<?php $a = 1.234; var_dump($a); echo "<br>"; $b = 10.2e3; var_dump($b); echo "<br>"; $c = 4E-10; var_dump($c); ?>

4. Dữ liệu kiểu Boolean

Booleans giống như một công tắc, nó chỉ có hai giá trị có thể là 1 (true) hoặc 0 (false).

<?php // Gán giá trị TRUE cho biến $show_error = true; var_dump($show_error); ?>

5. Dữ liệu kiểu Mảng (Array) trong PHP

Một mảng là một biến có thể chứa nhiều hơn một giá trị tại một thời điểm. Mảng rất hữu ích khi tổng hợp một loạt các mục liên quan lại với nhau, ví dụ như một tập hợp các tên quốc gia hoặc thành phố.

Một mảng được định nghĩa chính thức là một tập hợp các giá trị dữ liệu được lập chỉ mục. Mỗi chỉ mục (còn được gọi là key) của một mảng là duy nhất và tham chiếu một giá trị tương ứng.

<?php $colors = array("Red", "Green", "Blue"); var_dump($colors); echo "<br>"; $color_codes = array( "Red" => "#ff0000", "Green" => "#00ff00", "Blue" => "#0000ff" ); var_dump($color_codes); ?>

Bạn sẽ học nhiều hơn về array trong các bài học tiếp theo. Bài này mình chỉ giới thiệu thôi.

6. Dữ liệu kiểu đối tượng (Object) trong PHP

Đối tượng là một kiểu dữ liệu không chỉ cho phép lưu trữ dữ liệu mà còn thông tin về cách xử lý dữ liệu đó.

Một đối tượng là một thể hiện cụ thể của một class dùng làm mẫu cho các đối tượng. Các đối tượng được tạo dựa trên mẫu này thông qua từ khóa new

Mọi đối tượng đều có các thuộc tính (properties) và phương thức (method) tương ứng với các thuộc tính của class cha của nó.

Mỗi đối tượng đối tượng là hoàn toàn độc lập, với các thuộc tính và phương thức riêng của nó và do đó có thể được thao tác độc lập với các đối tượng khác cùng class.

Đây là một ví dụ đơn giản về định nghĩa class theo sau là việc tạo đối tượng.

<?php // Class definition class greeting{ // properties public $str = "Hello World!"; // methods function show_greeting(){ return $this->str; } } // Create object from class $message = new greeting; var_dump($message); ?>

TIP: Các phần tử dữ liệu được lưu trữ trong một đối tượng được gọi là các thuộc tính và thông tin hoặc mã mô tả cách xử lý dữ liệu được gọi là các phương thức của đối tượng.

Giá trị NULL đặc biệt được sử dụng để biểu diễn các biến rỗng trong PHP. Một biến kiểu NULL là một biến không có dữ liệu. NULL là giá trị duy nhất có thể có của kiểu null.

<?php $a = NULL; var_dump($a); echo "<br>"; $b = "Hello World!"; $b = NULL; var_dump($b); ?>

Hơi khó hiểu phải không? :D. Đừng có cố hiểu bây giờ. Bạn cứ biết là có dữ liệu kiểu Null là được rồi.

8. PHP Resources

Resource là một biến đặc biệt, giữ tham chiếu đến tài nguyên bên ngoài.

Các biến Resource thường giữ các trình xử lý đặc biệt để mở các tệp và kết nối cơ sở dữ liệu.

<?php // Open a file for reading $handle = fopen("note.txt", "r"); var_dump($handle); echo "<br>"; // Connect to MySQL database server with default setting $link = mysql_connect("localhost", "root", ""); var_dump($link); ?>

9. Tổng kết

Như vậy là qua bài này mình đã giới thiệu về 8 kiểu dữ liệu trong PHP. Qua các bài tiếp theo bạn sẽ hiểu rõ hơn khi bắt đầu sử dụng chúng.