Hướng dẫn how many bytes is a double in python? - bao nhiêu byte là một đôi trong python?

Đang chạy

sys.getsizeof(float)

Không trả về kích thước của bất kỳ phao cá nhân nào, nó trả về kích thước của lớp

sys.getsizeof(float())
5. Lớp đó chứa nhiều dữ liệu hơn bất kỳ bản nổi nào, vì vậy kích thước được trả lại cũng sẽ lớn hơn nhiều.

Nếu bạn chỉ muốn biết kích thước của một chiếc phao duy nhất, cách dễ nhất là chỉ đơn giản là khởi tạo một số phao tùy ý. Ví dụ:

sys.getsizeof(float())

Lưu ý rằng

float()

Đơn giản chỉ cần trả lại

sys.getsizeof(float())
6, vì vậy điều này thực sự tương đương với:

sys.getsizeof(0.0)

Điều này trả về

sys.getsizeof(float())
7 byte trong trường hợp của bạn (và có lẽ đối với hầu hết những người khác là tốt). Trong trường hợp cpython (triển khai python phổ biến nhất), mỗi đối tượng
sys.getsizeof(float())
5 sẽ chứa một bộ đếm tham chiếu và một con trỏ tới loại (một con trỏ tới lớp
sys.getsizeof(float())
5) 32 bit cpython. Các byte còn lại (
float()
0 trong trường hợp của bạn rất có thể là 64 bit cpython) sẽ là các byte được sử dụng cho chính giá trị nổi thực tế.

Điều này không được đảm bảo để tìm ra cùng một cách cho các triển khai Python khác. Tài liệu tham khảo ngôn ngữ nói:

Chúng đại diện cho số điểm nổi độ chính xác kép ở cấp độ máy. Bạn đang ở trong lòng thương xót của kiến ​​trúc máy cơ bản (và triển khai C hoặc Java) cho phạm vi được chấp nhận và xử lý tràn. Python không hỗ trợ số điểm nổi chính xác đơn; Tiết kiệm trong bộ xử lý và sử dụng bộ nhớ thường là lý do để sử dụng chúng bị lấn át bởi chi phí sử dụng các đối tượng trong Python, do đó không có lý do gì để làm phức tạp ngôn ngữ với hai loại số điểm nổi.

Và tôi không biết về bất kỳ phương pháp thời gian chạy nào để cho bạn biết chính xác số lượng byte được sử dụng. Tuy nhiên, lưu ý rằng trích dẫn ở trên từ tham chiếu ngôn ngữ không nói rằng Python chỉ hỗ trợ các phao chính xác gấp đôi, vì vậy trong hầu hết các trường hợp (tùy thuộc vào mức độ quan trọng đối với bạn để luôn luôn đúng 100%) .

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu về loại phao Python, cách Python đại diện cho các số điểm nổi và cách kiểm tra số điểm nổi cho bình đẳng.: in this tutorial, you’ll learn about the Python float type, how Python represents floating-point numbers, and how to test the floating-point number for equality.

Giới thiệu về loại phao Python

Python sử dụng lớp

sys.getsizeof(float())
5 để thể hiện số thực.

Cpython thực hiện float bằng cách sử dụng loại c kép. Loại C kép thường thực hiện phao nhị phân hai điểm chính xác của IEEE 754, còn được gọi là nhị phân64.

Python Float sử dụng 8 byte (hoặc 64 bit) để biểu thị số thực. Không giống như loại số nguyên, loại float sử dụng số byte cố định.

Về mặt kỹ thuật, Python sử dụng 64 bit như sau:

  • 1 bit cho dấu hiệu (dương hoặc âm)
  • 11 bit cho số mũ 1.5E-5 1,5 x 10-5 (số mũ là
    float()
    
    2) Phạm vi là
    float()
    
    3.
  • 52 bit cho các chữ số quan trọng

Để đơn giản, các chữ số quan trọng là tất cả các chữ số ngoại trừ các số không dẫn đầu và theo dõi.

Ví dụ, 0,25 có hai chữ số quan trọng, 0,125 có ba chữ số quan trọng và 12,25 có bốn chữ số quan trọng.

(1.25) 10 = (1 × 20 + 0x2-1 + 1 × 2-2) 10 = (1.01) 2

Một số số có biểu diễn nhị phân hữu hạn, nhưng một số don don, ví dụ,

float()
4. Nó
float()
5 trong nhị phân.

Bởi vì điều này, Python chỉ có thể sử dụng các biểu diễn nổi gần đúng cho các số đó.

Lớp phao Python

float()
6 trả về một số điểm nổi dựa trên một số hoặc một chuỗi. Ví dụ:

>>> float(0.1) 0.1 >>> float('1.25') 1.25

Code language: JavaScript (javascript)

Nếu bạn chuyển một đối tượng (

float()
7) cho
float()
8, nó sẽ ủy thác cho
float()
9. Nếu
sys.getsizeof(0.0)
0 không được xác định, nó sẽ quay trở lại
sys.getsizeof(0.0)
1.

Nếu bạn không chuyển bất kỳ đối số nào cho

float()
6, nó sẽ trả lại
sys.getsizeof(float())
6

Khi bạn sử dụng hàm

sys.getsizeof(0.0)
4, bạn sẽ thấy rằng số
float()
4 được biểu diễn chính xác là
float()
4.

Trong nội bộ, Python chỉ có thể đại diện cho

float()
4 khoảng.

Để xem Python đại diện cho

float()
4 trong nội bộ như thế nào, bạn có thể sử dụng hàm
sys.getsizeof(0.0)
9.

Sau đây cho thấy Python đại diện cho số 0,1 bằng cách sử dụng 20 chữ số:

>>> format(0.1, '.20f') '0.10000000000000000555'

Code language: JavaScript (javascript)

Như bạn có thể thấy,

float()
4 không chính xác là ____24 mà

>>> float(0.1) 0.1 >>> float('1.25') 1.25

Code language: JavaScript (javascript)
2

Bởi vì Python có thể đại diện cho một số phao xấp xỉ, nó sẽ gây ra nhiều vấn đề khi bạn so sánh hai số điểm nổi.

Kiểm tra bình đẳng

Hãy cùng xem ví dụ sau:

x = 0.1 + 0.1 + 0.1 y = 0.3 print(x == y)

Code language: PHP (php)

Output:

False

Code language: PHP (php)

Trong nội bộ, Python không thể sử dụng số chữ số hữu hạn để biểu thị các số

>>> float(0.1) 0.1 >>> float('1.25') 1.25

Code language: JavaScript (javascript)
3 và

>>> float(0.1) 0.1 >>> float('1.25') 1.25

Code language: JavaScript (javascript)
4:

print(format(x, '.20f')) print(format(y, '.20f'))

Code language: PHP (php)

Output:

0.30000000000000004441 0.29999999999999998890

Code language: CSS (css)

Lưu ý rằng số chữ số là vô hạn. Chúng tôi chỉ hiển thị 20 chữ số đầu tiên.

Một cách để giải quyết vấn đề này là làm tròn cả hai mặt của biểu thức bình đẳng thành một số chữ số quan trọng. Ví dụ:

sys.getsizeof(float())
0

Output:

sys.getsizeof(float())
1

Cách giải quyết này không làm việc trong mọi trường hợp.

PEP485 cung cấp một giải pháp khắc phục vấn đề này bằng cách sử dụng dung sai tương đối và tuyệt đối.

Nó cung cấp hàm

>>> float(0.1) 0.1 >>> float('1.25') 1.25

Code language: JavaScript (javascript)
5 từ mô -đun

>>> float(0.1) 0.1 >>> float('1.25') 1.25

Code language: JavaScript (javascript)
6 trả về

>>> float(0.1) 0.1 >>> float('1.25') 1.25

Code language: JavaScript (javascript)
7 nếu hai số tương đối gần nhau.

Sau đây cho thấy chữ ký chức năng

>>> float(0.1) 0.1 >>> float('1.25') 1.25

Code language: JavaScript (javascript)
5:

sys.getsizeof(float())
2

Ví dụ:

sys.getsizeof(float())
3

Output:

sys.getsizeof(float())
1

Bản tóm tắt

  • Python sử dụng lớp
    sys.getsizeof(float())
    
    5 để thể hiện số thực.
  • Python sử dụng một số byte cố định (8 byte) để biểu thị phao. Do đó, nó có thể đại diện cho một số số trong nhị phân khoảng.
  • Sử dụng hàm

    >>> float(0.1) 0.1 >>> float('1.25') 1.25

    Code language: JavaScript (javascript)
    5 từ mô-đun toán học để kiểm tra bình đẳng cho các số điểm nổi.

Bạn có thấy hướng dẫn này hữu ích không?

Có bao nhiêu byte là gấp đôi?

Ứng dụng Windows 64-bit.

Tại sao int là 2 hoặc 4 byte?

Vì vậy, lý do tại sao bạn thấy một INT AS 4 byte (32 bit), là do mã được biên dịch để được thực thi hiệu quả bởi CPU 32 bit.Nếu cùng một mã được biên dịch cho CPU 16 bit, INT có thể là 16 bit và trên CPU 64 bit thì có thể là 64 bit.because the code is compiled to be executed efficiently by a 32-bit CPU. If the same code were compiled for a 16-bit CPU the int may be 16 bits, and on a 64-bit CPU it may be 64 bits.

Loại dữ liệu nào là 2 byte?

Các loại dữ liệu cơ bản Một byte là tám bit, một từ là 2 byte (16 bit), từ đôi là 4 byte (32 bit) và tứ từ là 8 byte (64 bit).

Có bao nhiêu bộ nhớ là một đôi?

Số chính xác gấp đôi - Nhân đôi để lưu trữ gấp đôi, máy tính sẽ phân bổ bộ nhớ 8 byte (64 bit).8 byte (64 bit) memory.