Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa Float và Double

Float và Double cả hai đều là kiểu dữ liệu trong kiểu Dấu phẩy động. Các số dấu phẩy động là các số thực có thành phần phân số trong đó. Sự khác biệt chính giữa float và double là loại float có bộ lưu trữ 32 bit. Mặt khác, loại kép có bộ lưu trữ 64 bit. Có một số khác biệt khác giữa float và double được thảo luận trong biểu đồ so sánh được đưa ra dưới đây.

Biểu đồ so sánh:

Cơ sở để so sánhPhaoGấp đôi
Độ chính xácĐộ chính xác đơn.Độ chính xác gấp đôi.
Bit32 bit.64 bit.
Byte4 byte.8 byte.
Phạm vi gần đúng1, 4e-045 đến 3, 4e + 0384, 9e-324 đến 1, 8e + 308
Đại diện bit1 bit đại diện cho bit dấu.
8 bit đại diện cho số mũ.
23 bit đại diện cho lớp phủ.
1 bit đại diện cho bit dấu.
11 bit đại diện cho số mũ.
52 bit đại diện cho lớp phủ.
Độ chính xácKém chính xác hơn.Chính xác hơn.

Định nghĩa của Float

Một kiểu dữ liệu nổi là một trong những kiểu dấu phẩy động. Phao kiểu dữ liệu có bộ lưu trữ 32 bit (bằng 4 byte) cho biến kiểu float. Kiểu dữ liệu float chỉ định độ chính xác duy nhất. Việc biểu diễn 32 bit trong float có thể được giải thích là 1 bit được biểu diễn dưới dạng bit dấu, 8 bit được biểu diễn dưới dạng số mũ và 23 bit được biểu diễn dưới dạng mantissa. Phạm vi tối đa của loại phao là 1, 4e-045 đến 3, 4e + 038. Khi so sánh với kiểu float dấu phẩy động kép thì kém chính xác hơn trong khi tính toán. Hãy để chúng tôi hiểu float bằng một ví dụ.

 #include #include int main () {float num1 = sqrt (64, 23) cout << num1; } // đầu ra 8.00060 

Như trong đoạn mã trên, bạn có thể quan sát thấy một biến float num1 được gán một giá trị bằng hàm sqrt (), trả về căn bậc hai của giá trị được truyền cho hàm này. Bạn có thể quan sát thấy rằng khi giá trị trong num1 được in, nó gần bằng giá trị chính xác, nhưng nó không chính xác. Bây giờ chúng ta hãy xem ví dụ dưới đây khi cùng một chương trình được thực thi bằng cách sử dụng double làm kiểu dữ liệu.

Định nghĩa của đôi

Double là loại kiểu dữ liệu dấu phẩy động thứ hai. Một kiểu dữ liệu kép có bộ lưu trữ 64 bit (bằng 8 byte) cho một biến kiểu kép. Nó chỉ định độ chính xác gấp đôi vì kích thước của nó chỉ gấp đôi phao. Biểu diễn 64 bit của kiểu double có thể được giải thích là 1 bit đại diện cho bit dấu, 11 bit đại diện cho số mũ và 52 bit còn lại đại diện cho mantissa. Trong số float và double loại dữ liệu được sử dụng phổ biến nhất là gấp đôi. Loại kép được sử dụng trong quá trình tính toán và khi cần độ chính xác hoàn hảo. Các hàm toán học sin (), cos () và sqrt () luôn trả về giá trị kép. Hãy cho chúng tôi hiểu độ chính xác của kiểu dữ liệu nhân đôi với một ví dụ.

 #include #include int main () {double num1 = sqrt (64, 23) cout << num1; } // đầu ra 8.0143621 

Bạn có thể quan sát rằng đầu ra thu được trong ví dụ, giải thích float khác với đầu ra thu được trong ví dụ, giải thích gấp đôi. Vì vậy, từ điều này, chúng ta có thể nói rằng kết quả thu được từ gấp đôi chính xác hơn so với float.

Sự khác biệt chính giữa Float và Double

  1. Phao kiểu dữ liệu chỉ định độ chính xác đơn có nghĩa là khi so sánh với gấp đôi thì độ chính xác thấp hơn trong khi đó, độ chính xác gấp đôi vì nó chỉ gấp đôi độ nổi của nó là không đáng kể so với float.
  2. Một biến của kiểu float có dung lượng lưu trữ là 32 bit trong khi đó, một biến kiểu kép có dung lượng lưu trữ là 64 bit, nó biên dịch gấp đôi dung lượng lưu trữ lớn hơn so với float.
  3. Giá trị trong float có thể nằm trong khoảng từ 1, 4e-045 đến 3, 4e + 038 trong khi đó, giá trị của kiểu double có thể dao động từ 4, 9e-324 đến 1, 8e + 308.
  4. Biểu diễn bit của giá trị float tương tự như 1 bit float được sử dụng cho bit sing, 8 bit cho số mũ và 23 bit để lưu trữ mantissa. Mặt khác, một giá trị kép tương tự như 1 bit của nó được sử dụng cho bit sing, 11 bit cho số mũ và 52 bit của nó để lưu trữ lớp phủ.
  5. Do đó, khi so sánh với float kép ít chính xác hơn, trong khi phép tính toán kép được sử dụng.

Phần kết luận:

Chà, nói chung bạn phải sử dụng gấp đôi vì nó cung cấp độ chính xác, đó là moto chính của chúng tôi hầu hết thời gian.

Top