Tiếng Việt - Định dạng số nhỏ gọn

Xin chào mọi người, những nhà thuật toán Java tương lai! ? Hôm nay, chúng ta sẽ bắt đầu hành trình thú vị vào thế giới Định dạng số nhỏ gọn trong Java. Đừng lo lắng nếu bạn mới bắt đầu học lập trình; tôi sẽ là người hướng dẫn bạn thân thiện, và chúng ta sẽ làm theo từng bước. Khi kết thúc hướng dẫn này, bạn sẽ định dạng số như một chuyên gia!

Java - Compact Number Formatting

Định dạng số nhỏ gọn là gì?

Trước khi chúng ta vào mã, hãy hiểu rõ về Định dạng số nhỏ gọn. Hãy tưởng tượng bạn đang xây dựng một ứng dụng mạng xã hội, và bạn muốn hiển thị số lượt thích trên một bài viết. Khi một bài viết có 1,000,000 lượt thích, thì hiển thị "1M" thay vì số đầy đủ là rất gọn gàng hơn. Đó là nơi Định dạng số nhỏ gọn đói hỏi!

Tạo một đối tượng CompactNumberFormat

Bắt đầu bằng cách tạo một đối tượng CompactNumberFormat. Điều này như là chuẩn bị cây cọ trí tuệ của chúng ta cho việc định dạng số!

import java.text.NumberFormat;
import java.util.Locale;

public class CompactNumberDemo {
    public static void main(String[] args) {
        NumberFormat formatter = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
    }
}

Trong đoạn mã này, chúng ta đang làm một số điều này:

  1. Chúng ta nhập các lớp cần thiết.
  2. Chúng ta tạo một đối tượng NumberFormat có tên là formatter.
  3. Chúng ta sử dụng NumberFormat.getCompactNumberInstance() để lấy một định dạng số nhỏ gọn.
  4. Chúng ta xác định Locale.US để sử dụng định dạng tiếng Anh Mỹ.
  5. Chúng ta chọn NumberFormat.Style.SHORT cho các biểu thức số ngắn.

Hãy nghĩ về Locale như là việc nhờ Java biết sử dụng phong cách số của đất nước nào. Nó giống như việc chọn giữa viết ngày tháng dưới dạng MM/DD/YYYY hay DD/MM/YYYY!

Định dạng giá trị

Bây giờ khi chúng ta có định dạng số, hãy sử dụng nó để định dạng một số!

public class CompactNumberDemo {
    public static void main(String[] args) {
        NumberFormat formatter = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);

        long number = 1000000;
        String formattedNumber = formatter.format(number);
        System.out.println(formattedNumber);  // Output: 1M
    }
}

Đây là điều gì đang xảy ra:

  1. Chúng ta tạo một biến long có tên là number với giá trị 1,000,000.
  2. Chúng ta sử dụng formatter của mình để định dạng số này.
  3. Chúng ta in kết quả, sẽ là "1M".

Có gì tuyệt vời hơn không? Chúng ta vừa chuyển một triệu thành "1M" chỉ với một vài dòng mã!

Ví dụ về Định dạng số nhỏ gọn

Hãy mở rộng ví dụ của chúng ta để định dạng các số khác nhau:

public class CompactNumberDemo {
    public static void main(String[] args) {
        NumberFormat formatter = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);

        long[] numbers = {1000, 1000000, 1000000000};
        for (long number : numbers) {
            String formattedNumber = formatter.format(number);
            System.out.println(number + " -> " + formattedNumber);
        }
    }
}

Output:

1000 -> 1K
1000000 -> 1M
1000000000 -> 1B

Trong ví dụ này:

  1. Chúng ta tạo một mảng các số long.
  2. Chúng ta sử dụng vòng lặp for-each để duyệt qua các số.
  3. Chúng ta định dạng mỗi số và in cả số gốc và số đã định dạng.

Thấy sao chúng ta đã sử dụng formatter để biến đổi 1000 thành 1K, 1000000 thành 1M và 1000000000 thành 1B không? Như có một chút thuốc thu nhỏ số trong Harry Potter!

Định dạng số nhỏ gọn và chữ số phân số

Đôi khi, chúng ta có thể muốn hiển thị một chút độ chính xác hơn trong các số đã định dạng. Chúng ta có thể làm điều này bằng cách đặt số chữ số phân số tối đa:

public class CompactNumberDemo {
    public static void main(String[] args) {
        NumberFormat formatter = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
        formatter.setMaximumFractionDigits(2);

        double[] numbers = {1234, 12345, 123456, 1234567};
        for (double number : numbers) {
            String formattedNumber = formatter.format(number);
            System.out.println(number + " -> " + formattedNumber);
        }
    }
}

Output:

1234.0 -> 1.23K
12345.0 -> 12.35K
123456.0 -> 123.46K
1234567.0 -> 1.23M

Đây là điều chúng ta đã làm:

  1. Chúng ta đặt số chữ số phân số tối đa là 2 bằng cách sử dụng setMaximumFractionDigits(2).
  2. Chúng ta sử dụng một mảng các số double để có độ chính xác cao hơn.
  3. Chúng ta định dạng và in mỗi số.

Thấy sao chúng ta bây giờ có thể thấy các chữ số phân số trong các số đã định dạng của mình không? Như thu phóng vào bản đồ để xem chi tiết hơn!

Kết luận

Chúc mừng! Bạn đã học cách sử dụng Định dạng số nhỏ gọn trong Java. Tính năng này rất hữu ích khi bạn cần hiển thị các số lớn một cách dễ hiểu. Nhớ rằng, lập trình tốt không chỉ là làm cho điều gì đó hoạt động, mà còn là làm cho nó dễ hiểu và dễ sử dụng.

Khi tiếp tục hành trình với Java, bạn sẽ khám phá nhiều tính năng thú vị hơn nữa. Hãy tiếp tục tập luyện, giữ được sự tò mò và quan trọng nhất, hãy vui chơi khi lập trình! Ai biết, có lẽ một ngày nào đó bạn sẽ tạo ra ứng dụng mạng xã hội tiếp theo, và bạn sẽ sử dụng Định dạng số nhỏ gọn để hiển thị số lượng hàng triệu người dùng của bạn! ?

Chúc bạn có một cuộc sống lập trình vui vẻ, những ngôi sao Java tương lai! ?

Credits: Image by storyset