Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 55c0f6f

Browse files
authored
Update 15.-floating-point-arithmetic-issues-and-limitations.md
1 parent d39644b commit 55c0f6f

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

15.-floating-point-arithmetic-issues-and-limitations.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,17 @@ Luôn nhớ rằng, dù cho kết quả được in ra có vẻ giống với gi
6565

6666
Thú vị hơn, ta sẽ thấy có rất nhiều số hữu tỉ thập phân có cùng một giá trị tương đương nhị phân. Ví dụ như 0.1 và 0.10000000000000001 hay 0.1000000000000000055511151231257827021181583404541015625 đều được biểu diễn chung bằng (3602879701896397 / (2 ** 55)). Chính vì nguyên nhân này, tất cả các giá trị hữu tỉ thập phân bên trên đều được logic eval(repr(x)) == 1/10 trả về giá trị True.
6767

68-
Trong quá khứ, build-in function của Python là [`repr()`](https://docs.python.org/3/library/functions.html#repr) sẽ hiển thị đến ký tự thứ 17 (0.10000000000000001). Bắt đầu từ Python 3.1, Python đã có thể lựa chọn giá trị tương đương gần nhất và hiển thị 0.1 (với hầu hết phần cứng).
68+
Trong quá khứ, hàm [`repr()`](https://docs.python.org/3/library/functions.html#repr) sẽ hiển thị đến ký tự thứ 17 (0.10000000000000001). Bắt đầu từ Python 3.1, Python đã có thể lựa chọn giá trị tương đương gần nhất và hiển thị 0.1 (với hầu hết phần cứng).
6969

7070
Lưu ý đây là tính tự nhiên của số hữu tỉ nhị phân, đây không phải là lỗi của Python, cũng càng không phải là lỗi của chương trình bạn viết. Vấn đề này cũng được xử lý tương tự ở rất nhiều ngôn ngữ lập trình khác.
7171

7272
Để output dễ nhìn hơn, ta có thể dùng string format để đưa ra độ chính xác cho kết quả ta cần.
7373

7474
```text
75-
>>> format(math.pi, '.12g') # give 12 significant digits
75+
>>> format(math.pi, '.12g') # trả về một số có 12 chữ số
7676
'3.14159265359'
7777
78-
>>> format(math.pi, '.2f') # give 2 digits after the point
78+
>>> format(math.pi, '.2f') # trả về một số với 2 số đằng sau dấu '.'
7979
'3.14'
8080
8181
>>> repr(math.pi)

0 commit comments

Comments
 (0)