Từ khóa double của Java , như trong bất kỳ ngôn ngữ nào khác, biểu thị định dạng máy tính để biểu diễn số dấu phẩy động, chiếm 64 bit hoặc 8 byte trong bộ nhớ. Trong bài viết này, chúng ta sẽ nói về double và xem xét một số ví dụ.

Điểm động và tính toán: mô tả toán học ngắn

Số phân số là số cố định hoặc dấu phẩy động. Tùy chọn đầu tiên có thể được biểu diễn dưới dạng phân số thông thường, trong đó tử số (chính số đó) và mẫu số (hệ số tỷ lệ của nó) sẽ là số nguyên. Ví dụ: số 2,7 là 27 với hệ số tỷ lệ là 10, 3,14 - 314 với hệ số 100. Tuy nhiên, cách tiếp cận này không chính xác lắm từ quan điểm tính toán, do đó, họ thường sử dụng biểu diễn dấu phẩy động. Trong điện toán, số học dấu phẩy động là một biểu diễn số học đặc biệt của các số thực dưới dạng một giá trị gần đúng để hỗ trợ sự đánh đổi giữa phạm vi và độ chính xác. Định dạng chính để biểu diễn số dấu phẩy động trong Java được gọi là float. Tên của nó xuất phát từ dấu phẩy động. Float là 32 bit, trong đó 1 bit là bit có dấu, 8 bit cho số mũ và 23 bit cho dấu hiệu. Phạm vi của nó là ±3. 40282347E + 38F tức là 6-7 chữ số có nghĩa. Tên double xuất phát từ double float. Cácloại double lớn gấp đôi float : 8 byte so với 4. Nó còn được gọi là số thực có độ chính xác kép. Trong số 64 bit dành riêng cho số kép, 1 bit là dấu, 11 bit là số mũ và 52 bit là dấu. Phân số kép Java lưu trữ các số trong phạm vi ±1.79769313486231570E + 308 tức là 15-16 chữ số có nghĩa. Double là một định dạng chính xác hơn. Vì vậy, nếu bạn cần lưu trữ số lượng thực sự lớn, ưu tiên tăng gấp đôi so với số float là một ý tưởng hay. Nhân tiện, các phương thức toán học như sqrt, sin hoặc cos và nhiều phương thức khác trả về giá trị kép. Tuy nhiên, bạn nên trả tiền cho độ chính xác gấp đôi với bộ nhớ.

Tạo một biến kép

Kiểu double dùng để lưu số thực. Để tạo một biến trong mã có thể lưu trữ các số thực, bạn cần sử dụng lệnh:

double name;
Trong đó tên là tên của biến.

double myPrice;  //here we create a variable called myPrice
double action; //and here -- action. 
Bạn cũng có thể sử dụng tốc ký để tạo nhiều biến kiểu double :

double name1, name2, name3;

Ví dụ về từ khóa kép Java

Hãy đưa ra một số ví dụ về việc sử dụng từ khóa kép Java để tạo một biến.

double myPrice = 5.0;
double height = 180;
double x = 7.1, y = 3.0;
Ở đây trong biến myPrice chúng ta có giá trị 5.0, trong biến height — 180, trong x chúng ta đặt giá trị 7.1 và 3.0 trong y .

Nhân đôi dưới dạng số nguyên

Trong Java, biến kép có thể được gán cả số thực và số nguyên. Khi gán số nguyên, chúng chỉ đơn giản được chuyển đổi thành số thực. Mặc dù đôi khi có thể mất một chút độ chính xác.

double height = 180;
int k = 2; 
int i = 5; 
double myDouble = k*i;
Trên thực tế, biến height lưu số 180.0 và biến myDouble lưu số 10.0.

Tương tác kép và số nguyên

Ngoài ra, nếu một số nguyên và một số thực có liên quan đến một số biểu thức, thì trước tiên số nguyên đó được chuyển đổi thành một số thực và chỉ sau đó tương tác với một số thực khác.

public class DoubleDemo {
   public static void main(String[] args) {
       int k = 2;
       double myDouble1 = 5;
       double myDouble = k*7.0;
       System.out.println(myDouble1);
       System.out.println(k*myDouble1);
       System.out.println(myDouble);
   }
}
Trong ví dụ này, đầu ra sẽ là:
5,0 10,0 14,0
Mặc dù số myDouble1 được ký hiệu là 5 chứ không phải 5.0, Java coi số này là double , vì vậy nó thực sự trông giống như 5.0. Nếu chúng ta nhân int và double, chúng ta luôn nhận được double , ngay cả khi trên thực tế, số này là một số nguyên. Chúng ta có thể gán biến kiểu double cho biến kiểu int . Để làm điều này, bạn cần thực hiện chuyển đổi loại rõ ràng. Tất nhiên, phần phân số sẽ bị loại bỏ, số sẽ bị cắt bớt thành số nguyên nhỏ hơn.

public class DoubleDemo {
   public static void main(String[] args) {
       double x = 57.789;
       int almostX;
       almostX = (int)x;
       System.out.println(almostX);
   }
}
Đầu ra là:
57
Cuối cùng, hãy nói về phép chia. Đây là điều thú vị nhất. Bạn có thể đã bắt gặp một thực tế là nếu bạn chia hai số nguyên, thì kết quả của phép chia là một số nguyên, ngay cả khi chúng không chia hết cho nhau:

public class DoubleDemo {
   public static void main(String[] args) {
       double myDouble = 7/2;
       System.out.println(myDouble);
   }
}
Kết quả là:
3.0
Điều này là do máy Java trước tiên chia hai số nguyên (và nhận được 3), sau đó lưu trữ giá trị này trong một biến kiểu double và kết quả là 3.0. Để có được không phải số nguyên, mà là phép chia thông thường, bạn cần gian lận. Ví dụ: viết một trong các số dưới dạng số thực (khi đó toàn bộ biểu thức sẽ tự động được chuyển đổi thành số thực). Nếu chúng ta làm việc với các biến kiểu số nguyên, thì chúng có thể được nhân với 1,0. Điều này sẽ không thay đổi giá trị, nhưng nó sẽ thay đổi loại biến từ int thành double .

public class DoubleDemo {
   public static void main(String[] args) {
       double myDouble = 7.0/2;
       int x = 5;
       int y = 2;
       System.out.println(myDouble);
       System.out.println(x*1.0/y);
   }
}
Đầu ra là:
3,5 2,5