Mô-đun `decimal` của Python

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ểu float sẽ dẫn đến các giá trị có lỗi, trong khi Decimal 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ụng Decimal, 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_UPROUND_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ô-đun decimal, 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.

YouTube Video