Ép kiểu trong Java

Trong lập trình ta sẽ gặp một số ít trường hợp là bắt đầu ta khai báo biến ở kiểu tài liệu này, nhưng sau đó ta cần chuyển nó sang kiểu tài liệu khác để tương thích trong thống kê giám sát. Vì vậy, bài viết này KungFu Tech sẽ hướng dẫn những bạn cách ép kiểu trong Java .
Ép kiểu trong java là việc gán giá trị của một biến có kiểu tài liệu này tới biến khác có kiểu tài liệu khác, chú ý quan tâm là trong bài này chỉ nói đến ép kiểu tài liệu so với tài liệu nguyên thủy. Có 2 kiểu ép kiểu ( quy đổi kiểu ) đó là

  • Ép kiểu không tường minh
  • Ép kiểu tường minh

Ép kiểu không tường minh

Việc ép kiểu thường được diễn ra một cách tự động hóa trong trường hợp biểu thức gồm nhiều toán hạng có kiểu tài liệu khác nhau. Điều này đôi lúc làm cho bạn khá kinh ngạc vì nhận được một tác dụng không theo ý muốn .

Bạn đang đọc: Ép kiểu trong Java

int two=2, three=3;
float result= 1.5 + three/two;

Kết quả nhận được của result là 2.5. Điều mà bạn mong muốn là 3.0 chứ không phải là 2.5. Kết quả 2.5 nhận được là do threetwo là hai giá trị nguyên nên kết quả của phép chia three/two cho ta một giá trị nguyên bằng 1 chứ không phải là 1.5. Để nói rằng kết quả của phép chia three/two là một giá trị thực chứ không phải là một giá trị nguyên thì một trong hai toán hạng của phép chia này phải là một số thực. Do vậy ta cần phải chuyển kiểu của một trong hai toán hạng này hoặc cả hai thành số thực. Để nhận được kết quả đúng trong trường hợp này bạn cần viết như sau:

float result=1.5 + (float) three/two;  
float result=1.5 + three/(float)two;  
float result=1.5 +(float)three/(float)two;

Lý do mà ta viết như trên là nếu trong một phép toán có sự tham gia của nhiều toán hạng có kiểu khác nhau thì java sẽ chuyển kiểu tự động hóa cho những toán hạng một cách tự động hóa theo quy tắc sau :

quy tắc ép kiểu trong java

Ép kiểu tường minh

Để quy đổi kiểu một cách tường minh ta sử dụng cú pháp sau :

([kiểu dữ liệu muốn chuyển đổi]) [biểu thức];

Khi gặp câu lệnh này java sẽ tính toán giá trị của biểu thức sau đó chuyển đổi kiểu giá trị của biểu thức thành kiểu kiểu dữ liệu muốn chuyển đổi

(int) 2.5 * 2 = 4
(int) 2.5 * 2.5 = 5
(int)(2.5 * 2.5) = 6
1 + (float) 5 / 2 = 1 + 5 / (float)2 =1 + (float)5 / (float

)

2 = 3.5
  • Phép toán chuyển kiểu là phép toán có độ ưu tiên cao, nên (int)3.5*2(int)(3.4*2)
  • Cần chú ý khi chuyển một biểu thức kiểu dữ liệu có miền giá trị lớn sang một kiểu có miền giá trị nhỏ hơn. Trong trường hợp này có thể bạn sẽ bị mất thông tin.