Mô-đun `decimal` của Python
Bài viết này giải thích về mô-đun decimal
của Python.
Bạn có thể tìm hiểu về các khái niệm cơ bản trong tính toán với mô-đun decimal
, quản lý độ chính xác, làm tròn và hơn thế nữa, kèm theo các ví dụ mã nguồn.
YouTube Video
Mô-đun decimal
của Python
Mô-đun decimal
của Python cung cấp phép toán thập phân với độ chính xác cố định để tránh các lỗi xảy ra trong các phép toán dấu phẩy động. Bằng cách sử dụng mô-đun này, bạn có thể nhận được kết quả đáng tin cậy hơn trong các phép tính tài chính hoặc các phép tính yêu cầu độ chính xác cao. Trong các tình huống mà lỗi từ kiểu float
là vấn đề, mô-đun decimal
sẽ rất hiệu quả.
Cách sử dụng cơ bản của mô-đun decimal
Khi sử dụng mô-đun decimal
, hãy nhập lớp Decimal
và xử lý các giá trị dưới dạng các phiên bản của lớp này. Tiếp theo, chúng ta sẽ minh họa cách sử dụng cơ bản.
1from decimal import Decimal
2
3# Basic usage example of Decimal
4a = Decimal('0.1')
5b = Decimal('0.2')
6result = a + b
7
8print(f"Result: {result}") # Result: 0.3
- Đoạn mã này thực hiện chính xác phép cộng 0.1 và 0.2 bằng cách sử dụng lớp
Decimal
. Thực hiện cùng một phép tính bằng kiểufloat
sẽ dẫn đến các giá trị có lỗi, trong khiDecimal
tránh được các lỗi này.
Kiểm soát độ chính xác
Mô-đun decimal
cho phép bạn dễ dàng kiểm soát độ chính xác (số chữ số thập phân) trong các phép tính. Hàm getcontext()
có thể được sử dụng để lấy ngữ cảnh hiện tại và thay đổi các thiết lập của nó.
1from decimal import Decimal, getcontext
2
3# Set the precision
4getcontext().prec = 4 # Set to 4 decimal places
5
6a = Decimal('1') / Decimal('3')
7print(f"Result with precision 4: {a}") # Result with precision 4: 0.3333
- Trong ví dụ này, độ chính xác được thiết lập thành 4 chữ số cho phép tính
1 ÷ 3
. Bằng cách sử dụngDecimal
, bạn có thể thiết lập độ chính xác của các phép tính theo nhu cầu, cho phép bạn điều chỉnh kết quả phù hợp.
Làm tròn
Mô-đun decimal
bao gồm một số tùy chọn để xác định phương pháp làm tròn. Dưới đây là các ví dụ sử dụng các tùy chọn làm tròn khác nhau như ROUND_UP
và ROUND_DOWN
.
1from decimal import Decimal, ROUND_UP, ROUND_DOWN
2
3# Example of rounding a number
4a = Decimal('1.2345')
5
6# Rounding up
7rounded_up = a.quantize(Decimal('0.01'), rounding=ROUND_UP)
8print(f"Rounded Up: {rounded_up}") # Rounded Up: 1.24
9
10# Rounding down
11rounded_down = a.quantize(Decimal('0.01'), rounding=ROUND_DOWN)
12print(f"Rounded Down: {rounded_down}") # Rounded Down: 1.23
- Ở đây,
quantize()
được sử dụng để làm tròn tăng và giảm số với độ chính xác 2 chữ số thập phân. Điều này cho phép thực hiện việc làm tròn cũng như các loại phương pháp làm tròn khác nhau.
Ngữ cảnh hoạt động và ngoại lệ
Mô-đun decimal
cũng có thể xử lý các lỗi và ngoại lệ xảy ra trong quá trình hoạt động. Xử lý tùy chỉnh có thể được định nghĩa cho các lỗi cụ thể, chẳng hạn như chia cho số không hoặc tràn.
1from decimal import Decimal, getcontext, DivisionByZero
2
3# Exception handling
4getcontext().traps[DivisionByZero] = True
5
6try:
7 result = Decimal('1') / Decimal('0')
8except DivisionByZero:
9 print("Division by zero error caught!")
- Trong ví dụ này, ngoại lệ
DivisionByZero
được bắt khi xảy ra chia cho số không. Trong mô-đundecimal
, lỗi có thể được kiểm soát và tùy chỉnh theo cách này.
Tóm tắt
Mô-đun decimal
cực kỳ hữu ích trong các tính toán tài chính hoặc các tình huống cần độ chính xác cao để tránh lỗi số thực. Nó hỗ trợ một loạt các ứng dụng, từ các phép tính cơ bản đến quản lý độ chính xác, làm tròn và xử lý ngoại lệ. Hãy xem lại các điểm tóm tắt dưới đây và sử dụng mô-đun decimal
theo nhu cầu cụ thể của bạn.
- Số học thập phân chính xác có thể được thực hiện với lớp
Decimal
. - Bạn có thể tự do điều chỉnh cài đặt độ chính xác và làm tròn.
- Các ngoại lệ chẳng hạn như chia cho số không có thể được quản lý.
Điều này cho phép bạn sử dụng mô-đun decimal
để giảm thiểu sai sót trong các tình huống cần tính toán số học chính xác.
Bạn có thể làm theo bài viết trên bằng cách sử dụng Visual Studio Code trên kênh YouTube của chúng tôi. Vui lòng ghé thăm kênh YouTube.