0,1 trong python dấu phẩy động nhị phân

Bản tóm tắt. trong hướng dẫn này, bạn sẽ tìm hiểu về kiểu float của Python, cách Python biểu thị các số dấu phẩy động và cách kiểm tra sự bằng nhau của số dấu phẩy động

Giới thiệu về kiểu float trong Python

Python sử dụng lớp

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
1 để biểu diễn số thực

CPython thực hiện float bằng cách sử dụng loại kép C. Loại kép C thường triển khai float nhị phân độ chính xác kép IEEE 754, còn được gọi là binary64

Python float sử dụng 8 byte [hoặc 64 bit] để biểu diễn số thực. Không giống như kiểu số nguyên, kiểu float sử dụng một số byte cố định

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

  • 1 bit cho dấu [dương hoặc âm]
  • 11 bit cho số mũ 1. 5e-5 1. 5 x 10-5 [số mũ là

    >>> format[0.1, '.20f'] '0.10000000000000000555'

    Code language: JavaScript [javascript]
    2] phạm vi là

    >>> format[0.1, '.20f'] '0.10000000000000000555'

    Code language: JavaScript [javascript]
    3
  • 52 bit cho chữ số có nghĩa

Để đơn giản, các chữ số có nghĩa là tất cả các chữ số trừ các số 0 ở đầu và cuối

Ví dụ: 0. 25 có hai chữ số có nghĩa là 0. 125 có ba chữ số có nghĩa và 12. 25 có 4 chữ số có nghĩa

[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ố thì không, e. g. ,

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
4. Đó là

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
5 ở dạng nhị phân

Do đó, Python chỉ có thể sử dụng các biểu diễn float gần đúng cho các số đó

lớp float Python

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
6 trả về một số dấu phẩy động 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 [

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
7] cho

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
8, nó sẽ ủy quyền cho

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
9. Nếu

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
00 không được xác định, nó sẽ quay trở lại

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
01

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

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
02, nó sẽ trả về

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
03

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

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
04, bạn sẽ thấy rằng số

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
4 được biểu thị chính xác là

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
4

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

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
4

Để xem Python đại diện cho

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
4 bên trong như thế nào, bạn có thể sử dụng hàm

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
09

Phần sau đây cho thấy cách Python đại diện cho số 0. 1 sử dụng 20 chữ số

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]

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

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
4 không chính xác là

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
4 mà là

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
32

Bởi vì Python có thể đại diện cho một số số float, nó sẽ gây ra nhiều vấn đề khi bạn so sánh hai số dấu phẩy động

kiểm tra bình đẳng

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

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
0

đầu ra

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
3

Bên trong, Python không thể sử dụng một số chữ số hữu hạn để biểu diễn các số

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
33 và

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
34

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
8

đầu ra

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
9

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 vế của biểu thức đẳng thức thành một số chữ số có nghĩa. Ví dụ

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
0

đầu ra

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
1

Cách giải quyết này không hoạt động trong mọi trường hợp

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

Nó cung cấp hàm

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
35 từ mô-đun

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
36 trả về

>>> format[0.1, '.20f'] '0.10000000000000000555'

Code language: JavaScript [javascript]
37 nếu hai số tương đối gần nhau

Có thể nổi đại diện cho 0. 1 trong Python?

Số 0. 1 trong dấu phẩy động . 0 0011 ‾ 0. 0\overline{0011} 0. 00011, nhưng nó không thể được biểu diễn ở dạng dấu phẩy động vì chúng ta không thể xử lý các thanh ở dạng dấu phẩy động. Chúng tôi chỉ có thể biểu diễn nó bằng các chữ số/bit cố định bằng bất kỳ loại dữ liệu nào.

là 1. 0 số nguyên hay float Python?

Trong Python, nếu bạn khai báo một số không có dấu thập phân thì số đó sẽ tự động được coi là số nguyên . Các giá trị có dấu thập phân [e. g. , 6. 00, 2. 543, 233. 5, 1. 0] được gọi là float.

Dấu phẩy động nhị phân trong Python là gì?

Dấu phẩy động nhị phân trong Python là gì? . CPython thực hiện float bằng cách sử dụng loại kép C. Loại kép C thường triển khai float nhị phân độ chính xác kép IEEE 754, còn được gọi là binary64. Python float sử dụng 8 byte [hoặc 64 bit] để biểu diễn số thực. Python uses the float class to represent real numbers. CPython implements float using C double type. The C double type usually implements IEEE 754 double-precision binary float, which is also called binary64. Python float uses 8 bytes [or 64 bits] to represent real numbers.

là 3. 0 một nổi

3. 0 có thể biểu thị chính xác trong cả float và double , vì vậy sẽ không có sự khác biệt nào đối với trường hợp cụ thể đó.

Chủ Đề