Xem thêm

Kiểu Số trong ngôn ngữ lập trình Java

Huy Erick
Chào mừng đến với bài viết này! Trong bài viết này, chúng ta sẽ tìm hiểu về các kiểu số trong ngôn ngữ lập trình Java và cách sử dụng chúng. Hãy cùng bắt đầu!...

Chào mừng đến với bài viết này! Trong bài viết này, chúng ta sẽ tìm hiểu về các kiểu số trong ngôn ngữ lập trình Java và cách sử dụng chúng. Hãy cùng bắt đầu!

Số

Trong phần này, chúng ta sẽ thảo luận về lớp Number trong gói java.lang và các lớp con của nó. Chúng ta cũng sẽ tìm hiểu về lớp PrintStream và DecimalFormat, cung cấp các phương thức để định dạng số trong đầu ra. Cuối cùng, chúng ta sẽ tìm hiểu về lớp Math và các phương thức toán học mà nó cung cấp.

Khi làm việc với các con số, chúng ta thường sử dụng các kiểu nguyên thủy trong mã của mình. Tuy nhiên, nền tảng Java cung cấp các lớp bao bọc (wrapper classes) cho mỗi kiểu dữ liệu nguyên thủy. Các lớp này "bọc" dữ liệu nguyên thủy trong một đối tượng. Việc sử dụng các đối tượng thay vì các dữ liệu nguyên thủy có thể có lợi ích trong một số trường hợp.

Có ba lý do khiến bạn có thể sử dụng đối tượng Number thay vì đối tượng nguyên thủy:

  1. Là một đối số của một phương thức mong đợi một đối tượng.
  2. Để sử dụng các hằng số do lớp xác định.
  3. Để sử dụng các phương thức lớp để chuyển đổi giữa các kiểu nguyên thủy và hệ thống số.

Ví dụ: (Code example)

Tất cả các lớp bao bọc số là các lớp con của lớp trừu tượng Number. Lưu ý rằng có bốn lớp con khác của Number không được thảo luận ở đây. BigDecimal và BigInteger được sử dụng để tính toán độ chính xác cao. AtomicInteger và AtomicLong được sử dụng cho các ứng dụng đa luồng.

Các phương thức sau đây chuyển đổi giá trị của đối tượng Number thành kiểu dữ liệu nguyên thủy:

  • byte byteValue()
  • short shortValue()
  • int intValue()
  • long longValue()
  • float floatValue()
  • double doubleValue()

Các phương thức khác của lớp Number so sánh đối tượng Number này với đối số.

Các phương thức equals(Object obj) và compareTo(..) được sử dụng để so sánh các đối tượng Number với nhau. Phương thức equals(Object obj) xác định xem đối tượng số này có bằng đối số hay không. Phương thức trả về true nếu đối số không phải là null và là một đối tượng cùng loại và có cùng giá trị số.

Mỗi lớp Number chứa các phương thức khác hữu ích cho việc chuyển đổi giữa các kiểu số và giữa các hệ thống số.

Định dạng đầu ra đối với in số

Trước đây, chúng ta đã sử dụng các phương thức print và println để in các chuỗi trong đầu ra tiêu chuẩn System.out. Tuy nhiên, Java cung cấp các phương thức khác để kiểm soát việc in đầu ra số. Hãy tìm hiểu về phương thức Printf và Format.

Phương thức Printf và Format là phương thức của lớp PrintStream trong gói java.io. Các phương thức này cho phép bạn định dạng và in ra các số theo ý muốn. Cú pháp của hai phương thức này tương đối giống nhau.

Để sử dụng các phương thức Printf và Format, bạn chỉ cần gọi chúng trên đối tượng System.out. Ví dụ:

System.out.printf("Hello %s!", "world");

Các phương thức này chấp nhận một chuỗi định dạng và một danh sách các biến sẽ được in bằng định dạng đó. Chuỗi định dạng chứa văn bản thuần túy cũng như các chỉ định định dạng, là các ký tự đặc biệt định dạng các đối số. Có nhiều trình chuyển đổi, cờ và trình xác định được ghi lại trong java.util.Formatter.

Đây là một ví dụ cơ bản:

String name = "John";
int age = 25;
System.out.printf("My name is %s and I am %d years old.", name, age);

Phương thức printf và format là như nhau, bạn có thể sử dụng bất kỳ điểm nào trong mã của mình mà trước đây bạn đã sử dụng print hoặc println.

Lớp DecimalFormat

Lớp DecimalFormat trong gói java.text cung cấp các phương thức để kiểm soát cách hiển thị các số. Bạn có thể sử dụng lớp này để định dạng số 0 ở đầu và ở cuối, tiền tố và hậu tố, dấu phân cách nhóm và dấu phân cách thập phân.

Ví dụ sau tạo một đối tượng DecimalFormat và sử dụng phương thức định dạng để định dạng một số trong một chuỗi:

double number = 12345.6789;
DecimalFormat myFormatter = new DecimalFormat("##,###.##");
String formattedNumber = myFormatter.format(number);
System.out.println(formattedNumber);

Kết quả là:

12,345.68

Phần định dạng "##,###.##" chỉ định rằng số phải có dấu phân cách nhóm (,) và hai chữ số sau dấu phân thập (.). Kết quả được định dạng theo chuỗi mẫu.

Trong ví dụ trên, chúng ta đã sử dụng các phương pháp printf của lớp PrintStream để thay thế print và println. Tuy nhiên, Java cung cấp nhiều phương thức khác cho phép bạn kiểm soát hơn việc in đầu ra của mình khi liên quan đến số.

Bài viết này đã giới thiệu về các kiểu số trong ngôn ngữ lập trình Java và cách sử dụng chúng. Chúng ta đã tìm hiểu cách sử dụng lớp PrintStream và DecimalFormat để định dạng số trong đầu ra. Chúng ta cũng đã tìm hiểu về lớp Math và các phương thức toán học mà nó cung cấp. Hi vọng rằng bạn đã tìm thấy bài viết này hữu ích và có thể áp dụng những kiến thức mới vào công việc của mình.

1