Review Làm cách nào để tìm một số cụ thể trong python?

Kinh Nghiệm Hướng dẫn Làm cách nào để tìm một số trong những rõ ràng trong python? Mới Nhất

Họ và tên đang tìm kiếm từ khóa Làm cách nào để tìm một số trong những rõ ràng trong python? được Update vào lúc : 2022-12-27 10:08:07 . Với phương châm chia sẻ Kinh Nghiệm Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi đọc Post vẫn ko hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Tác giả lý giải và hướng dẫn lại nha.

Mô-đun

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 4 đáp ứng tương hỗ cho số học dấu phẩy động thập phân được làm tròn đúng chuẩn nhanh gọn. Nó đáp ứng một số trong những lợi thế so với kiểu tài liệu >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6 Nội dung chính Show
    Hướng dẫn khởi đầu nhanh¶Đối tượng thập phân¶Toán hạng logic¶Đối tượng ngữ cảnh¶Hằng số¶Chế độ làm tròn¶Tín hiệu¶Ghi chú dấu phẩy động¶Giảm thiểu lỗi làm tròn với độ đúng chuẩn tăng lên¶Giá trị đặc biệt¶Làm việc với chủ đề¶Công thức nấu ăn¶Câu hỏi thường gặp về số thập phân¶

    Số thập phân “nhờ vào một quy mô dấu phẩy động được thiết kế dành riêng cho con người và nhất thiết phải có một nguyên tắc hướng dẫn tối quan trọng – máy tính phải đáp ứng một phép tính số học hoạt động và sinh hoạt giải trí in như phép tính số học mà mọi người học ở trường. ” – đoạn trích từ đặc tả số học thập phân

    Số thập phân hoàn toàn có thể được màn biểu diễn đúng chuẩn. trái lại, những số như

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 7 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 8 không còn màn biểu diễn đúng chuẩn ở dạng dấu phẩy động nhị phân. Người dùng cuối thường không mong đợi >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 9 hiển thị dưới dạng >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 0 in như với dấu phẩy động nhị phân

    Tính đúng chuẩn chuyển sang số học. Trong dấu phẩy động thập phân,

    >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 1 đúng chuẩn bằng 0. Trong dấu phẩy động nhị phân, kết quả là >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 2. Trong khi gần bằng 0, sự khác lạ ngăn cản thử nghiệm bình đẳng đáng tin cậy và sự khác lạ hoàn toàn có thể tích lũy. Vì nguyên do này, số thập phân được ưa thích hơn trong những ứng dụng kế toán có không bao giờ thay đổi đẳng thức nghiêm ngặt

    Mô-đun thập phân phối hợp khái niệm về những vị trí quan trọng sao cho

    >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 3 là >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 4. Số 0 ở cuối được giữ để biểu thị tầm quan trọng. Đây là cách trình bày thông thường cho những ứng dụng tiền tệ. Đối với phép nhân, cách tiếp cận “sách giáo khoa” sử dụng tất cả những số liệu trong những bội số. Chẳng hạn, >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 5 cho >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 6 trong khi >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 7 cho >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 8

    Không in như dấu phẩy động nhị phân nhờ vào phần cứng, mô-đun thập phân có độ đúng chuẩn hoàn toàn có thể thay đổi của người tiêu dùng (mặc định là 28 vị trí) hoàn toàn có thể lớn đến mức thiết yếu cho một vấn đề nhất định

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 4

    Cả dấu phẩy động nhị phân và thập phân đều được triển khai theo những tiêu chuẩn đã công bố. Trong khi kiểu float có sẵn chỉ thể hiện một phần nhã nhặn kĩ năng của nó, thì mô-đun thập phân thể hiện tất cả những phần bắt buộc của tiêu chuẩn. Khi cần, lập trình viên có toàn quyền trấn áp việc làm tròn và xử lý tín hiệu. Điều này gồm có một tùy chọn để thực thi số học đúng chuẩn bằng phương pháp sử dụng những ngoại lệ để chặn bất kỳ hoạt động và sinh hoạt giải trí không đúng chuẩn nào

    Mô-đun thập phân được thiết kế để tương hỗ “không ảnh hưởng, cả số học thập phân không làm tròn đúng chuẩn (đôi khi được gọi là số học dấu phẩy động) và số học dấu phẩy động được làm tròn. ” – đoạn trích từ đặc tả số học thập phân

Thiết kế mô-đun tập trung vào ba khái niệm. số thập phân, ngữ cảnh cho số học và tín hiệu

Một số thập phân là không bao giờ thay đổi. Nó có dấu, chữ số thông số và số mũ. Để duy trì ý nghĩa, những chữ số của thông số không cắt bớt những số 0 ở cuối. Số thập phân cũng gồm có những giá trị đặc biệt như

>>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 9, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61. Tiêu chuẩn cũng phân biệt >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 62 với >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63

Bối cảnh cho số học là môi trường tự nhiên thiên nhiên chỉ định độ đúng chuẩn, quy tắc làm tròn, số lượng giới hạn số mũ, cờ biểu thị kết quả của phép toán và trình tương hỗ bẫy xác định xem tín hiệu đã có được xem là ngoại lệ hay là không. Các tùy chọn làm tròn gồm có

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 64, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 65, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 66, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 67, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 68, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 69, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61

Tín hiệu là nhóm những điều kiện đặc biệt phát sinh trong quá trình tính toán. Tùy thuộc vào nhu yếu của ứng dụng, những tín hiệu hoàn toàn có thể bị bỏ qua, được xem là thông tin hoặc được xem là ngoại lệ. Các tín hiệu trong mô-đun thập phân là.

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 62, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 64, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 65, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 66, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 67, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 68, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 69 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60

Đối với mỗi tín hiệu, có một cờ và trình kích hoạt bẫy. Khi phát hiện một tín hiệu, cờ của tín hiệu đó được đặt thành một, sau đó, nếu trình kích hoạt bẫy được đặt thành một, thì một ngoại lệ sẽ được đưa ra. Cờ dính, vì vậy người tiêu dùng cần đặt lại chúng trước khi theo dõi phép tính

Xem thêm

    Đặc tả số học thập phân chung của IBM, Đặc tả số học thập phân chung

Hướng dẫn khởi đầu nhanh¶

Cách khởi đầu thông thường để sử dụng số thập phân là nhập mô-đun, xem ngữ cảnh hiện tại với

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 và, nếu cần, đặt giá trị mới cho bẫy đúng chuẩn, làm tròn hoặc bật

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 8

Các trường hợp thập phân hoàn toàn có thể được xây dựng từ những số nguyên, chuỗi, số float hoặc bộ tài liệu. Việc xây dựng từ một số trong những nguyên hoặc số float thực hiện quy đổi đúng chuẩn giá trị của số nguyên hoặc số float đó. Số thập phân gồm có những giá trị đặc biệt như

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 viết tắt của “Không phải là số”, số dương và số âm >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 9 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 62

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 2

Nếu tín hiệu

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60 bị mắc kẹt, việc vô tình trộn số thập phân và số float trong hàm tạo hoặc so sánh thứ tự sẽ tạo ra một ngoại lệ

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 4

Mới trong phiên bản 3. 3

Tầm quan trọng của Số thập phân mới chỉ được xác định bởi số lượng chữ số đầu vào. Độ đúng chuẩn của ngữ cảnh và làm tròn chỉ phát huy tác dụng trong những phép toán số học

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 5

Nếu vượt quá số lượng giới hạn nội bộ của phiên bản C, việc xây dựng số thập phân sẽ tăng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: []

Thay đổi trong phiên bản 3. 3

Số thập phân tương tác tốt với phần lớn phần còn sót lại của Python. Đây là một rạp xiếc bay dấu phẩy động thập phân nhỏ

>>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77')

Và một số trong những hàm toán học cũng luôn có thể có sẵn cho Số thập phân

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6

Phương thức

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 67 làm tròn một số trong những thành số mũ cố định và thắt chặt. Phương pháp này hữu ích cho những ứng dụng tiền tệ thường làm tròn kết quả đến một số trong những vị trí cố định và thắt chặt

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6

Như được hiển thị ở trên, hàm

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 truy cập ngữ cảnh hiện tại và được cho phép thay đổi setup. Cách tiếp cận này đáp ứng nhu yếu của hầu hết những ứng dụng

Đối với việc làm nâng cao hơn, hoàn toàn có thể hữu ích khi tạo những ngữ cảnh thay thế bằng phương pháp sử dụng hàm tạo Context(). Để thực hiện thay thế hoạt động và sinh hoạt giải trí, hãy sử dụng hiệu suất cao

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 69

Theo tiêu chuẩn, mô-đun

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 4 đáp ứng hai toàn cảnh tiêu chuẩn sẵn sàng sử dụng, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 801 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 802. Cái trước đặc biệt hữu ích để gỡ lỗi vì nhiều bẫy được bật

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6

Bối cảnh cũng luôn có thể có cờ tín hiệu để theo dõi những điều kiện đặc biệt gặp phải trong quá trình tính toán. Các cờ vẫn được đặt cho tới lúc bị xóa rõ ràng, vì vậy tốt nhất là xóa những cờ trước mỗi bộ tính toán được giám sát bằng phương pháp sử dụng phương pháp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 803

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 80

Mục cờ đã cho tất cả chúng ta biết giá trị gần đúng hợp lý của

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 804 đã được làm tròn (những chữ số nằm ngoài độ đúng chuẩn của ngữ cảnh đã bị vô hiệu) và kết quả là không đúng chuẩn (một số trong những chữ số bị vô hiệu khác 0)

Các bẫy riêng lẻ được đặt bằng phương pháp sử dụng từ điển trong trường

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 805 của ngữ cảnh

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 81

Hầu hết những chương trình chỉ điều chỉnh toàn cảnh hiện tại một lần, khi khởi đầu chương trình. Và, trong nhiều ứng dụng, tài liệu được quy đổi thành

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 với một lần truyền bên trong một vòng lặp. Với tập ngữ cảnh và số thập phân được tạo, phần lớn chương trình thao tác tài liệu không khác gì với nhiều chủng loại số Python khác

Đối tượng thập phân¶

lớp thập phân. Số thập phân(giá trị=', context=None)¶

Xây dựng một đối tượng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 mới nhờ vào giá trị

giá trị hoàn toàn có thể là một số trong những nguyên, chuỗi, tuple,

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6 hoặc một đối tượng >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 khác. Nếu không còn mức giá trị nào được đưa ra, trả về >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 810. Nếu giá trị là một chuỗi, thì giá trị đó phải tuân theo cú pháp chuỗi số thập phân sau khi những ký tự khoảng chừng trắng ở đầu và cuối, cũng như dấu gạch dưới trong suốt, được xóa

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 82

Các chữ số thập phân Unicode khác cũng khá được được cho phép khi

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 811 xuất hiện ở trên. Chúng gồm có những chữ số thập phân từ nhiều bảng vần âm khác (ví dụ: chữ số Ả Rập-Ấn Độ và chữ số Devanāgarī) cùng với những chữ số có độ rộng đầy đủ từ >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 812 đến >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 813

Nếu giá trị là một

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 814, nó phải có ba thành phần, một dấu (>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 815 cho số dương hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 816 cho số âm), một >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 814 chữ số và một số trong những mũ nguyên. Ví dụ: >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 818 trả về >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 819

Nếu giá trị là một

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6, thì giá trị dấu phẩy động nhị phân được quy đổi thuận tiện và đơn giản thành số thập phân tương đương đúng chuẩn của nó. Chuyển đổi này thường hoàn toàn có thể yêu cầu độ đúng chuẩn từ 53 chữ số trở lên. Ví dụ: >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 821 quy đổi thành >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 822

Độ đúng chuẩn của ngữ cảnh không ảnh hưởng đến số lượng chữ số được tàng trữ. Điều đó được xác định độc quyền bởi số chữ số trong giá trị. Ví dụ:

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 823 ghi lại tất cả năm số không trong cả những lúc độ đúng chuẩn của ngữ cảnh chỉ là ba

Mục đích của đối số ngữ cảnh là xác định phải làm gì nếu giá trị là một chuỗi không đúng định dạng. Nếu toàn cảnh bẫy

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63, một ngoại lệ sẽ được nêu ra;

Sau khi được xây dựng, những đối tượng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 là không bao giờ thay đổi

Đã thay đổi trong phiên bản 3. 2. Đối số của hàm tạo hiện được phép là một thể hiện của

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6.

Đã thay đổi trong phiên bản 3. 3. ______06 đối số đưa ra một ngoại lệ nếu bẫy

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60 được đặt. Theo mặc định bẫy tắt.

Đã thay đổi trong phiên bản 3. 6. Dấu gạch dưới được được cho phép để nhóm, như với những ký tự dấu phẩy động và tích phân trong mã.

Các đối tượng dấu phẩy động thập phân chia sẻ nhiều thuộc tính với những kiểu số dựng sẵn khác, ví dụ như

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 831. Tất cả những phép toán thông thường và những phương pháp đặc biệt được áp dụng. Tương tự như vậy, những đối tượng thập phân hoàn toàn có thể được sao chép, chọn, in, sử dụng làm khóa từ điển, được sử dụng làm phần tử tập hợp, so sánh, sắp xếp và ép buộc sang loại khác (ví dụ như >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 831)

Có một số trong những khác lạ nhỏ giữa số học trên những đối tượng thập phân và số học trên số nguyên và số float. Khi toán tử còn sót lại

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 834 được áp dụng cho những đối tượng Số thập phân, dấu của kết quả là dấu của số bị chia chứ không phải là dấu của số chia

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 83

Toán tử chia số nguyên

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 835 hoạt động và sinh hoạt giải trí tương tự, trả về phần nguyên của thương số thực (cắt ngắn về 0) thay vì giá trị sàn của nó, để không thay đổi giá trị thông thường >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 836

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 84

Các toán tử

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 834 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 835 thực hiện những phép toán >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 839 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 840 (tương ứng) như được mô tả trong đặc tả

Các đối tượng thập phân thường không thể được kết phù phù hợp với số float hoặc thể hiện của

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 841 trong những phép toán số học. một nỗ lực để thêm một >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 vào một >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6, ví dụ điển hình, sẽ tăng một >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 844. Tuy nhiên, hoàn toàn có thể sử dụng những toán tử so sánh của Python để so sánh một thể hiện >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 846 với một số trong những khác >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 847. Điều này tránh kết quả khó hiểu khi thực hiện so sánh bình đẳng Một trong những số loại rất khác nhau

Đã thay đổi trong phiên bản 3. 2. So sánh kiểu hỗn hợp Một trong những phiên bản

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 và những kiểu số khác hiện đã được tương hỗ đầy đủ.

Ngoài những thuộc tính số tiêu chuẩn, những đối tượng dấu phẩy động thập phân còn tồn tại một số trong những phương thức chuyên biệt

đã điều chỉnh() ¶

Trả về số mũ đã điều chỉnh sau khi dịch chuyển những chữ số ngoài cùng bên phải của thông số cho tới lúc chỉ từ lại chữ số đứng vị trí số 1.

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 849 trả về bảy. Được sử dụng để xác định vị trí của chữ số có nghĩa nhất đối với dấu thập phânas_integer_ratio() ¶

Trả về một cặp số nguyên

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 850 đại diện cho thể hiện >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 đã cho dưới dạng phân số, theo số hạng thấp nhất và có mẫu số dương

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 85

Việc quy đổi là đúng chuẩn. Tăng OverflowError trên vô số và ValueError trên NaN

Mới trong phiên bản 3. 6

as_tuple() ¶

Trả về một bộ mang tên đại diện cho số.

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 852. chính tắc() ¶

Trả lại mã hóa chính tắc của đối số. Hiện tại, mã hóa của phiên bản

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 luôn là chuẩn, vì vậy thao tác này trả về đối số của nó không thay đổiso sánh(khác , toàn cảnh=None)¶

So sánh những giá trị của hai trường hợp thập phân.

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 854 trả về một thể hiện Số thập phân và nếu một trong hai toán hạng là NaN thì kết quả là NaN

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 86so sánh_signal(khác , toàn cảnh=None)¶

Hoạt động này giống với phương pháp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 854, ngoại trừ việc tất cả những tín hiệu NaN. Nghĩa là, nếu không còn toán hạng nào là NaN báo hiệu thì bất kỳ toán hạng NaN yên tĩnh nào thì cũng khá được coi như thể đó là NaN báo hiệuso_total(khác , toàn cảnh=None)¶

So sánh hai toán hạng bằng phương pháp sử dụng màn biểu diễn trừu tượng của chúng thay vì giá trị số của chúng. Tương tự như phương pháp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 854, nhưng kết quả cho tổng thứ tự trên những phiên bản >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806. Hai trường hợp >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 có cùng giá trị số nhưng cách màn biểu diễn rất khác nhau so sánh không bằng nhau theo thứ tự này

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 87

NaN yên tĩnh và báo hiệu cũng khá được gồm có trong tổng số thứ tự. Kết quả của hàm này là

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 810 nếu cả hai toán hạng có cùng màn biểu diễn, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 860 nếu toán hạng đầu tiên có tổng thứ tự thấp hơn toán hạng thứ hai và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 861 nếu toán hạng thứ nhất có tổng thứ tự cao hơn toán hạng thứ hai. Xem thông số kỹ thuật để biết rõ ràng về tổng số đơn đặt hàng

Hoạt động này sẽ không biến thành ảnh hưởng bởi ngữ cảnh và yên tĩnh. không còn cờ nào được thay đổi và không còn phép làm tròn nào được thực hiện. Là một ngoại lệ, phiên bản C hoàn toàn có thể tăng InvalidOperation nếu toán hạng thứ hai không thể được quy đổi đúng chuẩn

so sánh_total_mag(khác , toàn cảnh=None)¶

So sánh hai toán hạng bằng phương pháp sử dụng màn biểu diễn trừu tượng thay vì giá trị của chúng như trong

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 862, nhưng bỏ qua dấu của từng toán hạng. >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 863 tương đương với >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 864

Hoạt động này sẽ không biến thành ảnh hưởng bởi ngữ cảnh và yên tĩnh. không còn cờ nào được thay đổi và không còn phép làm tròn nào được thực hiện. Là một ngoại lệ, phiên bản C hoàn toàn có thể tăng InvalidOperation nếu toán hạng thứ hai không thể được quy đổi đúng chuẩn

phối hợp() ¶

Chỉ trả về self, phương thức này chỉ tuân theo Đặc tả thập phân

copy_abs() ¶

Trả về giá trị tuyệt đối của đối số. Hoạt động này sẽ không biến thành ảnh hưởng bởi toàn cảnh và yên tĩnh. không còn cờ nào được thay đổi và không còn phép làm tròn nào được thực hiện

copy_negate() ¶

Trả về phủ định của đối số. Hoạt động này sẽ không biến thành ảnh hưởng bởi toàn cảnh và yên tĩnh. không còn cờ nào được thay đổi và không còn phép làm tròn nào được thực hiện

copy_sign(khác , toàn cảnh=None)¶

Trả về một bản sao của toán hạng thứ nhất với dấu được đặt giống với dấu của toán hạng thứ hai. Ví dụ

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 88

Hoạt động này sẽ không biến thành ảnh hưởng bởi ngữ cảnh và yên tĩnh. không còn cờ nào được thay đổi và không còn phép làm tròn nào được thực hiện. Là một ngoại lệ, phiên bản C hoàn toàn có thể tăng InvalidOperation nếu toán hạng thứ hai không thể được quy đổi đúng chuẩn

exp(toàn cảnh=Không có)¶

Trả về giá trị của hàm số mũ (tự nhiên)

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 865 tại số đã cho. Kết quả được làm tròn đúng chuẩn bằng phương pháp sử dụng chính sách làm tròn >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 68

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 89classmethod from_float(f)¶

Hàm tạo thay thế chỉ đồng ý những phiên bản của

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 831

Lưu ý

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 869 rất khác với >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 870. Tính từ lúc 0. 1 không thể màn biểu diễn đúng chuẩn trong dấu phẩy động nhị phân, giá trị được lưu dưới dạng giá trị màn biểu diễn sớm nhất là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 871. Giá trị tương đương ở dạng thập phân là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 872

Ghi chú

Từ Python 3. 2 trở đi, một phiên bản

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 cũng hoàn toàn có thể được xây dựng trực tiếp từ một phiên bản >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 6

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 20

Mới trong phiên bản 3. 1

fma(khác , thứ ba, context=None)¶

Hợp nhất nhân-thêm. Trả về self*other+thứ ba mà không làm tròn sản phẩm trung gian self*other

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 21is_canonical() ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số là hợp quy và ngược lại là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876. Hiện tại, một phiên bản >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 luôn là hợp quy, vì vậy thao tác này luôn trả về >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875is_finite() ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số là một số trong những hữu hạn và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876 nếu đối số là vô hạn hoặc NaNis_infinite() ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số là vô cực dương hoặc âm và ngược lại là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876is_nan() ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số là NaN (im re hoặc có tín hiệu) và ngược lại là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876is_normal(toàn cảnh=Không có)¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số là một số trong những hữu hạn thông thường. Trả về >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876 nếu đối số bằng 0, không thông thường, vô hạn hoặc NaNis_qnan() ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số là NaN yên tĩnh và ngược lại là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876is_signed() ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số có dấu âm và ngược lại là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876. Lưu ý rằng cả số không và NaN đều hoàn toàn có thể mang dấuis_snan() ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số là NaN báo hiệu và ngược lại là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876is_subnormal(toàn cảnh=Không có)¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số không thông thường và ngược lại là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876is_zero() ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu đối số là số 0 (dương hoặc âm) và ngược lại là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876ln(toàn cảnh=Không có)¶

Trả về logarit tự nhiên (cơ số e) của toán hạng. Kết quả được làm tròn đúng chuẩn bằng phương pháp sử dụng chính sách làm tròn

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 68log10(toàn cảnh=Không có)¶

Trả về logarit cơ số 10 của toán hạng. Kết quả được làm tròn đúng chuẩn bằng phương pháp sử dụng chính sách làm tròn

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 68logb(toàn cảnh=Không có)¶

Đối với một số trong những khác 0, hãy trả về số mũ đã điều chỉnh của toán hạng của nó dưới dạng phiên bản

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806. Nếu toán hạng là số 0 thì hàm >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 200 được trả về và cờ >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 64 được thổi lên. Nếu toán hạng là vô cùng thì trả về >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 202logic_and(khác , toàn cảnh=None)¶

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 203 là một phép toán logic nhận hai toán hạng logic (xem Toán hạng logic ). Kết quả là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 204 chữ số khôn ngoan của hai toán hạng. logic_invert(toàn cảnh=Không có)¶

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 205 là một hoạt động và sinh hoạt giải trí hợp lý. Kết quả là nghịch đảo chữ số của toán hạnglogic_or(khác , toàn cảnh=None)¶

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 206 là một phép toán logic nhận hai toán hạng logic (xem Toán hạng logic ). Kết quả là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 207 chữ số khôn ngoan của hai toán hạng. logic_xor(khác , toàn cảnh=None)¶

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 208 là một phép toán logic nhận hai toán hạng logic (xem Toán hạng logic ). Kết quả là loại trừ chữ số hoặc của hai toán hạng. tối đa(khác , toàn cảnh=None)¶

Giống như

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 209 ngoại trừ quy tắc làm tròn ngữ cảnh được áp dụng trước khi trả về và những giá trị >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 được báo hiệu hoặc bỏ qua (tùy thuộc vào ngữ cảnh và liệu chúng có báo hiệu hay là không)max_mag(khác , toàn cảnh=None)¶

Tương tự như phương pháp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 211, nhưng việc so sánh được thực hiện bằng phương pháp sử dụng những giá trị tuyệt đối của toán hạngphút(khác , toàn cảnh=None)¶

Giống như

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 212 ngoại trừ quy tắc làm tròn ngữ cảnh được áp dụng trước khi trả về và những giá trị >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 được báo hiệu hoặc bỏ qua (tùy thuộc vào ngữ cảnh và liệu chúng có báo hiệu hay là không)min_mag(khác , toàn cảnh=None)¶

Tương tự như phương pháp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 214, nhưng việc so sánh được thực hiện bằng phương pháp sử dụng những giá trị tuyệt đối của toán hạngnext_minus(toàn cảnh=Không có)¶

Trả về số lớn số 1 hoàn toàn có thể biểu thị trong ngữ cảnh đã cho (hoặc trong ngữ cảnh của luồng hiện tại nếu không còn ngữ cảnh nào được đáp ứng) nhỏ hơn toán hạng đã cho

next_plus(toàn cảnh=Không có)¶

Trả về số nhỏ nhất hoàn toàn có thể màn biểu diễn trong ngữ cảnh đã cho (hoặc trong ngữ cảnh của luồng hiện tại nếu không còn ngữ cảnh nào được đáp ứng) to hơn toán hạng đã cho

next_toward(khác , toàn cảnh=None)¶

Nếu hai toán hạng không bằng nhau, hãy trả về số gần toán hạng thứ nhất theo vị trí hướng của toán hạng thứ hai. Nếu cả hai toán hạng đều bằng nhau về số lượng, hãy trả về một bản sao của toán hạng đầu tiên với dấu được đặt giống với dấu của toán hạng thứ hai

chuẩn hóa(toàn cảnh=Không có)¶

Chuẩn hóa số bằng phương pháp vô hiệu những số 0 ở cuối bên phải và quy đổi bất kỳ kết quả nào bằng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 810 thành >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 216. Được sử dụng để tạo ra những giá trị đúng cho những thuộc tính của một lớp tương đương. Ví dụ: >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 217 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 218 đều chuẩn hóa thành giá trị tương đương >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 219số_lớp(toàn cảnh=Không có)¶

Trả về một chuỗi mô tả lớp của toán hạng. Giá trị trả về là một trong mười chuỗi sau

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 220, chỉ ra rằng toán hạng là vô cực âm

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 221, chỉ ra rằng toán hạng là một số trong những thông thường âm

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 222, chỉ ra rằng toán hạng là âm và không thông thường

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 223, cho biết thêm thêm toán hạng là số 0 âm

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 224, cho biết thêm thêm toán hạng là số 0 dương

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 225, chỉ ra rằng toán hạng là dương và không thông thường

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 226, chỉ ra rằng toán hạng là một số trong những thông thường dương

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 227, chỉ ra rằng toán hạng là dương vô cùng

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 228, chỉ ra rằng toán hạng là một NaN yên tĩnh (Không phải là một số trong những)

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 229, chỉ ra rằng toán hạng là một NaN báo hiệu
số lượng hóa(exp , làm tròn=None, context=None)¶

Trả về một giá trị bằng toán hạng đầu tiên sau khi làm tròn và có số mũ của toán hạng thứ hai

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 22

Không in như những thao tác khác, nếu độ dài của thông số sau thao tác lượng tử hóa to hơn độ đúng chuẩn, thì một

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63 được báo hiệu. Điều này đảm nói rằng, trừ khi có điều kiện lỗi, số mũ được lượng tử hóa luôn bằng số mũ của toán hạng bên phải

Ngoài ra, không in như những hoạt động và sinh hoạt giải trí sinh hoạt khác, lượng tử hóa không bao giờ báo hiệu Underflow, trong cả những lúc kết quả là không thông thường và không đúng chuẩn

Nếu số mũ của toán hạng thứ hai to hơn số mũ của toán hạng thứ nhất thì hoàn toàn có thể nên phải làm tròn. Trong trường hợp này, chính sách làm tròn được xác định bởi đối số

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 231 nếu được đưa ra, nếu không thì bởi đối số >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 232 đã cho;

Một lỗi được trả về bất kể lúc nào số mũ kết quả to hơn

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 233 hoặc nhỏ hơn >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 234cơ số() ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 235, cơ số (cơ số) trong đó lớp >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 thực hiện tất cả những phép tính số học của nó. Bao gồm để tương thích với đặc điểm kỹ thuậtremainder_near(khác , toàn cảnh=None)¶

Trả lại phần còn sót lại từ việc chia bản thân cho những người dân khác. Điều này khác với

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 237 ở chỗ dấu của phần dư được chọn để giảm thiểu giá trị tuyệt đối của nó. Chính xác hơn, giá trị trả về là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 238 trong đó >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 239 là số nguyên sớm nhất với giá trị đúng chuẩn của >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 240 và nếu hai số nguyên gần bằng nhau thì số chẵn được chọn

Nếu kết quả bằng không thì dấu của nó sẽ là dấu của tự

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 23xoay(khác , toàn cảnh=None)¶

Trả về kết quả xoay những chữ số của toán hạng thứ nhất theo một lượng được chỉ định bởi toán hạng thứ hai. Toán hạng thứ hai phải là một số trong những nguyên trong phạm vi -precision đến precision. Giá trị tuyệt đối của toán hạng thứ hai cho biết thêm thêm số vị trí cần xoay. Nếu toán hạng thứ hai là dương thì phép quay sang trái; . Hệ số của toán hạng đầu tiên được đệm ở bên trái với độ đúng chuẩn từ 0 đến độ dài nếu cần. Dấu và số mũ của toán hạng đầu tiên không thay đổi

same_quantum(other , toàn cảnh=None)¶

Kiểm tra xem bản thân và người khác có cùng số mũ hay cả hai đều

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61

Hoạt động này sẽ không biến thành ảnh hưởng bởi ngữ cảnh và yên tĩnh. không còn cờ nào được thay đổi và không còn phép làm tròn nào được thực hiện. Là một ngoại lệ, phiên bản C hoàn toàn có thể tăng InvalidOperation nếu toán hạng thứ hai không thể được quy đổi đúng chuẩn

scaleb(khác , toàn cảnh=None)¶

Trả về toán hạng đầu tiên với số mũ được điều chỉnh bởi toán hạng thứ hai. Tương tự, trả về toán hạng đầu tiên nhân với

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 242. Toán hạng thứ hai phải là một số trong những nguyênchuyển(khác , toàn cảnh=None)¶

Trả về kết quả của việc dịch chuyển những chữ số của toán hạng thứ nhất theo một lượng được chỉ định bởi toán hạng thứ hai. Toán hạng thứ hai phải là một số trong những nguyên trong phạm vi -precision đến precision. Giá trị tuyệt đối của toán hạng thứ hai cho biết thêm thêm số lượng vị trí cần dịch chuyển. Nếu toán hạng thứ hai là số dương thì phép dịch chuyển sang trái; . Các chữ số được chuyển vào thông số là số không. Dấu và số mũ của toán hạng đầu tiên không thay đổi

sqrt(toàn cảnh=Không có)¶

Trả lại căn bậc hai của đối số về độ đúng chuẩn đầy đủ

to_eng_string(toàn cảnh=Không có)¶

Chuyển đổi thành chuỗi, sử dụng ký hiệu kỹ thuật nếu cần số mũ

Ký hiệu kỹ thuật có số mũ là bội số của 3. Điều này hoàn toàn có thể để lại tối đa 3 chữ số ở bên trái của vị trí thập phân và hoàn toàn có thể yêu cầu thêm một hoặc hai số 0 ở cuối

Ví dụ: điều này quy đổi

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 243 thành >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 244to_integral(làm tròn=Không có, context=None)¶

Giống với phương pháp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 245. Tên >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 246 đã được giữ để tương thích với những phiên bản cũ hơnto_integral_exact(làm tròn=Không có, context=None)¶

Làm tròn đến số nguyên sớm nhất, báo hiệu

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 65 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 66 nếu thích hợp nếu làm tròn xảy ra. Chế độ làm tròn được xác định bởi tham số >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 231 nếu được đáp ứng, nếu không thì bởi >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 232 đã cho. Nếu không còn tham số nào được đáp ứng thì chính sách làm tròn của ngữ cảnh hiện tại được sử dụngto_integral_value(làm tròn=Không có, context=None)¶

Làm tròn đến số nguyên sớm nhất mà không báo hiệu

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 65 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 66. Nếu được đáp ứng, áp dụng làm tròn;

Toán hạng logic¶

Các phương thức

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 203, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 205, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 206 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 208 mong ước những đối số của chúng là toán hạng logic. Toán hạng logic là một thực thể >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 có số mũ và dấu đều bằng 0 và có tất cả những chữ số là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 815 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 816

Đối tượng ngữ cảnh¶

Bối cảnh là môi trường tự nhiên thiên nhiên cho những hoạt động và sinh hoạt giải trí số học. Chúng chi phối độ đúng chuẩn, đặt quy tắc làm tròn, xác định tín hiệu nào được xem là ngoại lệ và số lượng giới hạn phạm vi cho số mũ

Mỗi luồng có toàn cảnh hiện tại riêng được truy cập hoặc thay đổi bằng phương pháp sử dụng những hàm

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 69thập phân. getcontext() ¶

Trả về toàn cảnh hiện tại cho chuỗi hoạt động và sinh hoạt giải trí

thập phân. setcontext(c) ¶

Đặt toàn cảnh hiện tại cho chuỗi hoạt động và sinh hoạt giải trí thành c

Bạn cũng hoàn toàn có thể sử dụng câu lệnh

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 262 và hàm >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 263 để tạm thời thay đổi ngữ cảnh hoạt độngthập phân. localcontext(ctx=None , **kwargs)¶

Trả về trình quản lý ngữ cảnh sẽ đặt ngữ cảnh hiện tại cho luồng đang hoạt động và sinh hoạt giải trí thành một bản sao của ctx khi vào câu lệnh with và Phục hồi ngữ tiền cảnh đó khi thoát khỏi câu lệnh with. Nếu không còn ngữ cảnh nào được chỉ định, một bản sao của ngữ cảnh hiện tại sẽ được sử dụng. Đối số kwargs được sử dụng để đặt những thuộc tính của ngữ cảnh mới

Ví dụ: đoạn mã sau đặt độ đúng chuẩn thập phân hiện tại thành 42 vị trí, thực hiện phép tính và sau đó tự động Phục hồi ngữ tiền cảnh đó

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 24

Sử dụng những đối số từ khóa, mã sẽ như sau

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 25

Tăng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 844 nếu kwargs đáp ứng một thuộc tính mà >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265 không tương hỗ. Tăng >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 844 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 267 nếu kwargs đáp ứng giá trị không hợp lệ cho một thuộc tính

Đã thay đổi trong phiên bản 3. 11. ______4263 hiện tương hỗ đặt thuộc tính ngữ cảnh thông qua việc sử dụng đối số từ khóa.

Các toàn cảnh mới cũng hoàn toàn có thể được tạo bằng hàm tạo

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265 được mô tả phía dưới. Ngoài ra, mô-đun đáp ứng ba toàn cảnh được tạo sẵnlớp thập phân. Bối cảnh cơ bản ¶

Đây là ngữ cảnh tiêu chuẩn được xác định bởi Đặc tả số học thập phân chung. Độ đúng chuẩn được đặt thành chín. Làm tròn được đặt thành

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 69. Tất cả cờ bị xóa. Tất cả những bẫy được bật (được xem là ngoại lệ) ngoại trừ >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 65, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 66 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 67

Do nhiều bẫy được bật nên toàn cảnh này rất hữu ích để gỡ lỗi

lớp thập phân. Ngữ cảnh mở rộng ¶

Đây là ngữ cảnh tiêu chuẩn được xác định bởi Đặc tả số học thập phân chung. Độ đúng chuẩn được đặt thành chín. Làm tròn được đặt thành

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 68. Tất cả cờ bị xóa. Không có bẫy nào được kích hoạt (để không phát sinh ngoại lệ trong quá trình tính toán)

Bởi vì những bẫy bị vô hiệu hóa, ngữ cảnh này hữu ích cho những ứng dụng muốn có mức giá trị kết quả là

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 hoặc >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 9 thay vì đưa ra những ngoại lệ. Điều này được cho phép một ứng dụng hoàn thành xong một lần chạy khi có những điều kiện hoàn toàn có thể làm dừng chương trìnhlớp thập phân. Ngữ cảnh mặc định ¶

Bối cảnh này được sử dụng bởi hàm tạo

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265 làm nguyên mẫu cho những toàn cảnh mới. Thay đổi một trường (độ đúng chuẩn như vậy) có tác dụng thay đổi mặc định cho những ngữ cảnh mới được tạo bởi hàm tạo >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265

Bối cảnh này hữu ích nhất trong môi trường tự nhiên thiên nhiên đa luồng. Thay đổi một trong những trường trước khi chuỗi khởi đầu có tác dụng đặt giá trị mặc định trên toàn khối mạng lưới hệ thống. Không nên thay đổi những trường sau khi những luồng đã khởi đầu vì nó sẽ yêu cầu đồng bộ hóa luồng để ngăn những điều kiện tương tranh

Trong những môi trường tự nhiên thiên nhiên luồng đơn, tốt nhất là không sử dụng ngữ cảnh này. Thay vào đó, chỉ việc tạo toàn cảnh một cách rõ ràng như được mô tả phía dưới

Các giá trị mặc định là

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 279=>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 280, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 231=>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 68 và bật bẫy cho >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 68, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 64

Ngoài ba ngữ cảnh được đáp ứng, những ngữ cảnh mới hoàn toàn có thể được tạo bằng hàm tạo

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265lớp thập phân. Bối cảnh(prec=Không có, rounding=None, Emin=None, Emax=None, capitals=None, clamp=None, flags=None, traps=None)¶

Tạo toàn cảnh mới. Nếu một trường không được chỉ định hoặc là

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 287, những giá trị mặc định sẽ được sao chép từ >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 288. Nếu trường cờ không được chỉ định hoặc là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 287, tất cả những cờ sẽ bị xóa

prec là một số trong những nguyên trong phạm vi [

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 816, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 291] đặt độ đúng chuẩn cho những phép tính số học trong ngữ cảnh

Tùy chọn làm tròn là một trong những hằng số được liệt kê trong phần Chế độ làm tròn

Các trường bẫy và cờ liệt kê mọi tín hiệu sẽ được đặt. Nói chung, toàn cảnh mới nên làm đặt bẫy và để trống cờ

Các trường Emin và Emax là những số nguyên xác định những số lượng giới hạn bên phía ngoài được cho phép đối với số mũ. Emin phải nằm trong khoảng chừng [

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 292, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 815], Emax trong khoảng chừng [>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 815, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 295]

Trường chữ hoa là

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 815 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 816 (mặc định). Nếu được đặt thành >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 816, số mũ được in bằng chữ hoa >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 299; . >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 401

Trường kẹp là

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 815 (mặc định) hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 816. Nếu được đặt thành >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 816, số mũ >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 400 của phiên bản >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 hoàn toàn có thể biểu thị trong ngữ cảnh này bị số lượng giới hạn nghiêm ngặt trong phạm vi >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 407. Nếu kẹp là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 815 thì tình trạng yếu hơn sẽ xảy ra. số mũ đã điều chỉnh của phiên bản >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 nhiều nhất là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 233. Khi clamp là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 816, một số trong những thông thường lớn, nếu hoàn toàn có thể, sẽ bị giảm số mũ và một số trong những 0 tương ứng được thêm vào thông số của nó, để phù phù phù hợp với những ràng buộc về số mũ; . Ví dụ

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 26

Giá trị kẹp của

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 816 được cho phép tương thích với những định dạng trao đổi thập phân có chiều rộng cố định và thắt chặt được chỉ định trong IEEE 754

Lớp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265 định nghĩa một số trong những phương thức có mục tiêu chung cũng như một số trong những lượng lớn những phương thức để thực hiện số học trực tiếp trong một ngữ cảnh nhất định. Ngoài ra, đối với mỗi phương pháp >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 được mô tả ở trên (ngoại trừ phương pháp >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 415 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 416), có một phương pháp >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265 tương ứng. Ví dụ: đối với phiên bản >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265 >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 419 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 phiên bản >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 846, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 422 tương đương với >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 423. Mỗi phương thức >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265 đồng ý một số trong những nguyên Python (một thể hiện của >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 831) ở bất kỳ đâu mà một thể hiện Số thập phân được chấp nhậnclear_flags() ¶

Đặt lại tất cả những cờ thành

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 815clear_traps() ¶

Đặt lại tất cả những bẫy thành

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 815

Mới trong phiên bản 3. 3

bản sao() ¶

Trả lại một bản sao của ngữ cảnh

copy_decimal(num) ¶

Trả về một bản sao của ví dụ thập phân num

create_decimal(num) ¶

Tạo một thể hiện Thập phân mới từ num nhưng sử dụng self làm ngữ cảnh. Không in như hàm tạo

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806, độ đúng chuẩn của ngữ cảnh, phương pháp làm tròn, cờ và bẫy được áp dụng cho quy đổi

Điều này rất hữu ích vì những hằng số thường được đáp ứng cho độ đúng chuẩn cao hơn mức thiết yếu của ứng dụng. Một quyền lợi khác là làm tròn ngay lập tức vô hiệu những hiệu ứng ngoài ý muốn từ những chữ số vượt quá độ đúng chuẩn hiện tại. Trong ví dụ sau, sử dụng đầu vào không được làm tròn nghĩa là việc thêm 0 vào tổng hoàn toàn có thể thay đổi kết quả

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 27

Phương pháp này thực hiện thao tác đánh số của đặc tả IBM. Nếu đối số là một chuỗi, không được phép có tầm khoảng chừng trắng ở đầu hoặc cuối hoặc dấu gạch dưới

create_decimal_from_float(f) ¶

Tạo một thể hiện Thập phân mới từ một float f nhưng làm tròn bằng phương pháp sử dụng self làm ngữ cảnh. Không in như phương pháp lớp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 429, độ đúng chuẩn ngữ cảnh, phương pháp làm tròn, cờ và bẫy được áp dụng cho quy đổi

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 28

Mới trong phiên bản 3. 1

Etiny() ¶

Trả về giá trị bằng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 430 là giá trị số mũ tối thiểu cho kết quả không thông thường. Khi tràn xảy ra, số mũ được đặt thành >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 234Etop() ¶

Trả về một giá trị bằng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 432

Cách tiếp cận thông thường để thao tác với số thập phân là tạo những phiên bản

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 và sau đó áp dụng những phép toán số học ra mắt trong ngữ cảnh hiện tại cho chuỗi hoạt động và sinh hoạt giải trí. Một cách tiếp cận khác là sử dụng những phương thức ngữ cảnh để tính toán trong một ngữ cảnh rõ ràng. Các phương thức tương tự như những phương thức dành riêng cho lớp >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 và chỉ được kể lại ngắn gọn ở đâyabs(x) ¶

Trả về giá trị tuyệt đối của x

add(x , y)¶

Trả về tổng của x và y

chính tắc(x) ¶

Trả về cùng một đối tượng thập phân x

so sánh(x , y)¶

So sánh x và y bằng số

so sánh_signal(x , y)¶

So sánh những giá trị của hai toán hạng bằng số

so_total(x , y)¶

So sánh hai toán hạng sử dụng màn biểu diễn trừu tượng của chúng

so_total_mag(x , y)¶

So sánh hai toán hạng bằng màn biểu diễn trừu tượng của chúng, bỏ qua dấu

copy_abs(x) ¶

Trả về một bản sao của x với dấu được đặt thành 0

copy_negate(x) ¶

Trả về một bản sao của x với dấu đảo ngược

copy_sign(x , y)¶

Sao chép dấu từ y đến x

chia(x , y)¶

Trả về x chia cho y

divide_int(x , y)¶

Trả về x chia cho y, rút ​​gọn thành một số trong những nguyên

divmod(x , y)¶

Chia hai số và trả về phần nguyên của kết quả

exp(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 435fma(x , y, z)¶

Trả về x nhân với y, cộng với z

is_canonical(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x là hợp quy; is_finite(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x hữu hạn; is_infinite(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x là vô hạn; is_nan(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x là qNaN hoặc sNaN; is_normal(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x là số thông thường; is_qnan(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x là một NaN yên tĩnh; is_signed(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x âm; is_snan(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x là NaN báo hiệu; is_subnormal(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x không thông thường; is_zero(x) ¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu x là số không; ln(x) ¶

Trả về logarit tự nhiên (cơ số e) của x

log10(x) ¶

Trả về logarit cơ số 10 của x

logb(x) ¶

Trả về số mũ của độ lớn MSD của toán hạng

logic_and(x , y)¶

Áp dụng phép toán logic và Một trong những chữ số của mỗi toán hạng

logic_invert(x) ¶

Đảo ngược tất cả những chữ số trong x

logic_or(x , y)¶

Áp dụng phép toán logic hoặc Một trong những chữ số của mỗi toán hạng

logic_xor(x , y)¶

Áp dụng phép toán logic xor Một trong những chữ số của mỗi toán hạng

max(x , y)¶

So sánh hai giá trị bằng số và trả về giá trị lớn số 1

max_mag(x , y)¶

So sánh những giá trị bằng số với dấu của chúng bị bỏ qua

phút(x , y)¶

So sánh hai giá trị bằng số và trả về giá trị nhỏ nhất

min_mag(x , y)¶

So sánh những giá trị bằng số với dấu của chúng bị bỏ qua

trừ(x) ¶

Dấu trừ tương ứng với toán tử trừ tiền tố một ngôi trong Python

nhân lên(x , y)¶

Trả về tích của x và y

next_minus(x) ¶

Trả về số đại diện lớn số 1 nhỏ hơn x

next_plus(x) ¶

Trả về số màn biểu diễn nhỏ nhất to hơn x

next_toward(x , y)¶

Trả về số gần x nhất, theo khuynh hướng về phía y

chuẩn hóa(x) ¶

Rút gọn x về dạng đơn giản nhất

số_lớp(x) ¶

Trả về một tín hiệu của lớp x

cộng(x) ¶

Plus tương ứng với toán tử cộng tiền tố một ngôi trong Python. Thao tác này áp dụng độ đúng chuẩn của ngữ cảnh và làm tròn, vì vậy đây không phải là thao tác nhận dạng

sức mạnh(x , y, modulo=None)¶

Đưa

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 846 về lũy thừa của >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 847, giảm modulo >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 458 nếu đã cho

Với hai đối số, tính toán

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 459. Nếu >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 846 âm thì >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 847 phải tích phân. Kết quả sẽ không đúng chuẩn trừ khi >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 847 là tích phân và kết quả là hữu hạn và hoàn toàn có thể được biểu thị đúng chuẩn bằng những chữ số 'đúng chuẩn'. Chế độ làm tròn của toàn cảnh được sử dụng. Kết quả luôn luôn được làm tròn đúng chuẩn trong phiên bản Python

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 463 dẫn đến >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63 và nếu >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63 không biến thành mắc kẹt, thì kết quả là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 466

Đã thay đổi trong phiên bản 3. 3. Mô-đun C tính toán

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 467 theo những hàm >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 468 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 469 được làm tròn đúng chuẩn. Kết quả được xác định rõ nhưng chỉ "hầu như luôn luôn được làm tròn đúng chuẩn".

Với ba đối số, tính toán

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 470. Đối với dạng ba đối số, những hạn chế sau đối với những đối số được giữ

    cả ba đối số phải là tích phân

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 847 phải không âm

    ít nhất một trong số

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 846 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 847 phải khác không

    >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 458 phải khác 0 và có tối đa những chữ số 'đúng chuẩn'

Giá trị thu được từ

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 475 bằng với giá trị sẽ thu được bằng phương pháp tính toán >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 470 với độ đúng chuẩn không số lượng giới hạn, nhưng được tính toán hiệu suất cao hơn. Số mũ của kết quả bằng 0, bất kể số mũ của >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 846, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 847 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 458. Kết quả luôn chính xácsố lượng hóa(x , y)¶

Trả về một giá trị bằng x (làm tròn), có số mũ là y

cơ số() ¶

Chỉ trả về 10, vì đây là Số thập phân,. )

phần còn sót lại(x , y)¶

Trả về phần còn sót lại từ phép chia số nguyên

Dấu của kết quả, nếu khác không, in như dấu của số bị chia ban đầu

remainder_near(x , y)¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 480, trong đó n là số nguyên sớm nhất với giá trị đúng chuẩn của >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 481 (nếu kết quả là 0 thì dấu của nó sẽ là dấu của x)xoay(x , y)¶

Trả về một bản sao được xoay x, y lần

same_quantum(x , y)¶

Trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875 nếu hai toán hạng có cùng số mũscaleb(x , y)¶

Trả về toán hạng đầu tiên sau khi thêm giá trị thứ hai exp của nó

ca(x , y)¶

Trả về một bản sao đã dịch chuyển của x, y lần

sqrt(x) ¶

Căn bậc hai của một số trong những không âm với độ đúng chuẩn theo ngữ cảnh

trừ(x , y)¶

Trả về sự khác lạ giữa x và y

to_eng_string(x) ¶

Chuyển đổi thành chuỗi, sử dụng ký hiệu kỹ thuật nếu cần số mũ

Ký hiệu kỹ thuật có số mũ là bội số của 3. Điều này hoàn toàn có thể để lại tối đa 3 chữ số ở bên trái của vị trí thập phân và hoàn toàn có thể yêu cầu thêm một hoặc hai số 0 ở cuối

to_integral_exact(x) ¶

Làm tròn thành một số trong những nguyên

to_sci_string(x) ¶

Chuyển đổi một số trong những thành một chuỗi bằng phương pháp sử dụng ký hiệu khoa học

Hằng số¶

Các hằng số trong phần này chỉ liên quan đến mô-đun C. Chúng cũng khá được gồm có trong phiên bản Python thuần túy để tương thích

32-bit

64-bit

thập phân. MAX_PREC ¶

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 483

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 484thập phân. MAX_EMAX ¶

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 483

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 484thập phân. MIN_EMIN ¶

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 487

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 488thập phân. MIN_ETINY ¶

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 489

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 490thập phân. HAVE_THREADS ¶

Giá trị là

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875. Không dùng nữa, vì Python giờ đây luôn có chủ đề

Không dùng nữa Tính từ lúc phiên bản 3. 9

thập phân. HAVE_CONTEXTVAR ¶

Giá trị mặc định là

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875. Nếu Python là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 493, phiên bản C sử dụng toàn cảnh cục bộ luồng thay vì ngữ cảnh cục bộ coroutine và giá trị là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876. Điều này nhanh hơn một chút ít trong một số trong những tình huống ngữ cảnh lồng nhau

Mới trong phiên bản 3. 9. đã nhập ngược về 3. 7 và 3. 8.

Chế độ làm tròn¶

thập phân. VÒNG_TRẦN ¶

Vòng về phía

>>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 9thập phân. ROUND_DOWN ¶

Làm tròn về số không

thập phân. ROUND_FLOOR ¶

Vòng về phía

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60thập phân. ROUND_HALF_DOWN ¶

Làm tròn đến sớm nhất với những quan hệ tiến về 0

thập phân. ROUND_HALF_EVEN ¶

Làm tròn đến sớm nhất với những quan hệ sẽ đến số nguyên chẵn sớm nhất

thập phân. ROUND_HALF_UP ¶

Làm tròn đến sớm nhất với những quan hệ đi từ số không

thập phân. ROUND_UP ¶

Làm tròn từ số 0

thập phân. ROUND_05UP ¶

Làm tròn từ 0 nếu chữ số ở đầu cuối sau khi làm tròn về 0 sẽ là 0 hoặc 5;

Tín hiệu¶

Tín hiệu đại diện cho những điều kiện phát sinh trong quá trình tính toán. Mỗi cái tương ứng với một cờ ngữ cảnh và một trình kích hoạt bẫy ngữ cảnh

Cờ ngữ cảnh được đặt bất kể lúc nào gặp điều kiện. Sau khi tính toán, những cờ hoàn toàn có thể được kiểm tra cho những mục tiêu thông tin (ví dụ: để xác định xem một phép tính có đúng chuẩn hay là không). Sau khi kiểm tra những cờ, đảm bảo xóa tất cả những cờ trước khi khởi đầu tính toán tiếp theo

Nếu trình kích hoạt bẫy của ngữ cảnh được đặt cho tín hiệu, thì điều kiện sẽ gây ra một ngoại lệ Python được đưa ra. Ví dụ: nếu bẫy

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 64 được đặt, thì ngoại lệ >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 64 sẽ xuất hiện khi gặp điều kiệnlớp thập phân. Đã kẹp ¶

Đã thay đổi số mũ để phù phù phù hợp với những ràng buộc màn biểu diễn

Thông thường, hiện tượng kỳ lạ kẹp xảy ra khi một số trong những mũ nằm ngoài số lượng giới hạn

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 499 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 233 của ngữ cảnh. Nếu hoàn toàn có thể, số mũ được hạ xuống cho phù hợp bằng phương pháp thêm những số 0 vào hệ sốlớp thập phân. DecimalException ¶

Lớp cơ sở cho những tín hiệu khác và lớp con của

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 501lớp thập phân. DivisionByZero ¶

Báo hiệu phép chia một số trong những không vô hạn cho 0

Có thể xảy ra với phép chia, phép chia modulo hoặc khi nâng một số trong những lên lũy thừa âm. Nếu tín hiệu này sẽ không biến thành giữ lại, trả về

>>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 9 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60 với tín hiệu được xác định bởi đầu vào của phép tínhlớp thập phân. Không đúng chuẩn ¶

Cho biết đã xảy ra làm tròn và kết quả không đúng chuẩn

Tín hiệu khi những chữ số khác 0 bị vô hiệu trong quá trình làm tròn. Kết quả làm tròn được trả về. Cờ hoặc bẫy tín hiệu được sử dụng để phát hiện khi kết quả không đúng chuẩn

lớp thập phân. Hoạt động không hợp lệ ¶

Một hoạt động và sinh hoạt giải trí không hợp lệ đã được thực hiện

Cho biết rằng một hoạt động và sinh hoạt giải trí được yêu cầu không còn ý nghĩa. Nếu không biến thành mắc kẹt, trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61. nguyên nhân hoàn toàn có thể gồm có

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 29lớp thập phân. Tràn ¶

tràn số

Cho biết số mũ to hơn

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 233 sau khi làm tròn số. Nếu không biến thành mắc kẹt, kết quả phụ thuộc vào chính sách làm tròn, kéo vào trong đến số hữu hạn hoàn toàn có thể màn biểu diễn lớn số 1 hoặc làm tròn ra ngoài thành >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 9. Trong cả hai trường hợp, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 65 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 66 cũng khá được báo hiệulớp thập phân. Làm tròn ¶

Làm tròn xảy ra tuy nhiên hoàn toàn có thể không còn thông tin nào bị mất

Báo hiệu bất kể lúc nào làm tròn vô hiệu chữ số; . Nếu không biến thành mắc kẹt, trả về kết quả không thay đổi. Tín hiệu này được sử dụng để phát hiện mất chữ số có nghĩa

lớp thập phân. Không thông thường ¶

Số mũ thấp hơn

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 499 trước khi làm tròn

Xảy ra khi kết quả hoạt động và sinh hoạt giải trí không thông thường (số mũ quá nhỏ). Nếu không biến thành mắc kẹt, trả về kết quả không thay đổi

lớp thập phân. Tràn đầy ¶

Dòng dưới số với kết quả được làm tròn thành 0

Xảy ra khi một kết quả không thông thường được đẩy về 0 bằng phương pháp làm tròn.

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 65 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 67 cũng khá được báo hiệulớp thập phân. FloatOperation ¶

Kích hoạt ngữ nghĩa ngặt nghèo hơn để trộn số float và số thập phân

Nếu tín hiệu không biến thành giữ lại (mặc định), được cho phép trộn số float và Số thập phân trong hàm tạo

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 515 và tất cả những toán tử so sánh. Cả quy đổi và so sánh đều đúng chuẩn. Bất kỳ sự xuất hiện nào của một hoạt động và sinh hoạt giải trí hỗn hợp đều được ghi lại âm thầm bằng phương pháp đặt >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60 trong những cờ ngữ cảnh. Chuyển đổi rõ ràng với >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 517 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 518 không đặt cờ

Mặt khác (tín hiệu bị bẫy), chỉ có những phép so sánh đẳng thức và quy đổi rõ ràng là im re. Tất cả những hoạt động và sinh hoạt giải trí sinh hoạt hỗn hợp khác tăng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60

Bảng dưới đây tóm tắt khối mạng lưới hệ thống phân cấp tín hiệu

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 40

Ghi chú dấu phẩy động¶

Giảm thiểu lỗi làm tròn với độ đúng chuẩn tăng lên¶

Việc sử dụng dấu phẩy động thập phân giúp vô hiệu lỗi màn biểu diễn thập phân (giúp hoàn toàn có thể biểu thị đúng chuẩn

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 520);

Ảnh hưởng của sai số làm tròn hoàn toàn có thể được khuếch đại bằng phương pháp cộng hoặc trừ những đại lượng gần như thể bù trừ dẫn đến mất ý nghĩa. Knuth đáp ứng hai ví dụ hướng dẫn trong đó số học dấu phẩy động được làm tròn với độ đúng chuẩn không đủ gây ra sự phá vỡ những thuộc tính phối hợp và phân phối của phép cộng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 41

Mô-đun

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 4 được cho phép Phục hồi danh tính bằng phương pháp mở rộng độ đúng chuẩn đủ để tránh mất ý nghĩa

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 42

Giá trị đặc biệt¶

Hệ thống số cho mô-đun

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 4 đáp ứng những giá trị đặc biệt gồm có >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 524, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 60, >>> data = list(map(Decimal, '1.34 1.87 3.45 2.35 1.00 0.03 9.25'.split())) >>> max(data) Decimal('9.25') >>> min(data) Decimal('0.03') >>> sorted(data) [Decimal('0.03'), Decimal('1.00'), Decimal('1.34'), Decimal('1.87'), Decimal('2.35'), Decimal('3.45'), Decimal('9.25')] >>> sum(data) Decimal('19.29') >>> a,b,c = data[:3] >>> str(a) '1.34' >>> float(a) 1.34 >>> round(a, 1) Decimal('1.3') >>> int(a) 1 >>> a * 5 Decimal('6.70') >>> a * b Decimal('2.5058') >>> c % a Decimal('0.77') 9 và hai số không, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 62

Vô cực hoàn toàn có thể được xây dựng trực tiếp với.

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 202. Ngoài ra, chúng hoàn toàn có thể phát sinh từ việc chia cho 0 khi tín hiệu >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 64 không biến thành mắc kẹt. Tương tự như vậy, khi tín hiệu >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 68 không biến thành mắc kẹt, vô hạn hoàn toàn có thể là kết quả của việc làm tròn vượt quá số lượng giới hạn của số lớn số 1 hoàn toàn có thể biểu thị

Các vô hạn được ký (affine) và hoàn toàn có thể được sử dụng trong những phép tính số học khi chúng được xem là những số rất lớn, không xác định. Chẳng hạn, thêm một hằng số vào vô cùng sẽ cho một kết quả vô hạn khác

Một số hoạt động và sinh hoạt giải trí không xác định và trả về

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 hoặc nếu tín hiệu >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63 bị kẹt, hãy đưa ra một ngoại lệ. Ví dụ: >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 534 trả về >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 nghĩa là “không phải số”. Loại >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 này sẽ không hoạt động và sinh hoạt giải trí và sau khi được tạo, sẽ chạy qua những tính toán khác luôn dẫn đến một >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 khác. Hành vi này hoàn toàn có thể hữu ích đối với một loạt phép tính đôi khi thiếu đầu vào — nó được cho phép phép tính tiếp tục trong khi gắn cờ những kết quả rõ ràng là không hợp lệ

Một biến thể là

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 524 báo hiệu thay vì giữ im re sau mỗi hoạt động và sinh hoạt giải trí. Đây là một giá trị trả về hữu ích khi một kết quả không hợp lệ cần làm gián đoạn phép tính để xử lý đặc biệt

Hành vi của những toán tử so sánh của Python hoàn toàn có thể hơi ngạc nhiên khi có liên quan đến

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61. Một bài kiểm tra về sự bằng nhau khi một trong những toán hạng là yên tĩnh hoặc có tín hiệu >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 luôn trả về >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876 (trong cả những lúc thực hiện >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 542), trong khi một bài kiểm tra về sự bất bình đẳng luôn trả về >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 875. Nỗ lực so sánh hai Số thập phân bằng phương pháp sử dụng bất kỳ toán tử nào trong số những toán tử >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 544, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 545, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 546 hoặc >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 547 sẽ tăng tín hiệu >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 63 nếu một trong hai toán hạng là >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 và trả về >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 876 nếu tín hiệu này sẽ không biến thành bẫy. Lưu ý rằng đặc tả số học thập phân chung không riêng gì có định hành vi so sánh trực tiếp; . 7). Để đảm bảo tuân thủ những tiêu chuẩn nghiêm ngặt, hãy sử dụng những phương pháp >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 854 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 553 thay thế

Các số 0 có dấu hoàn toàn có thể là kết quả của những phép tính nằm dưới. Họ giữ tín hiệu sẽ có kết quả nếu phép tính được thực hiện với độ đúng chuẩn cao hơn. Vì độ lớn của chúng bằng 0 nên cả số 0 dương và âm đều được xem là bằng nhau và dấu của chúng là thông tin

Ngoài hai số 0 có dấu phân biệt nhưng bằng nhau, còn tồn tại nhiều cách thức màn biểu diễn rất khác nhau của số 0 với độ đúng chuẩn rất khác nhau nhưng có mức giá trị tương đương. Điều này cần một chút ít thời gian để làm quen. Đối với một người đã quen với những màn biểu diễn dấu phẩy động được chuẩn hóa, không rõ ràng ngay lập tức rằng phép tính sau đây trả về một giá trị bằng 0

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 43

Làm việc với chủ đề¶

Hàm

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 truy cập một đối tượng >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 265 khác cho từng luồng. Có ngữ cảnh luồng riêng biệt nghĩa là những luồng hoàn toàn có thể thực hiện những thay đổi (ví dụ như >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 556) mà không can thiệp vào những luồng khác

Tương tự như vậy, hàm

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 69 sẽ tự động gán tiềm năng của nó cho chuỗi hiện tại

Nếu

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 69 không được gọi trước >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61, thì >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61 sẽ tự động tạo ngữ cảnh mới để sử dụng trong chuỗi hiện tại

Bối cảnh mới được sao chép từ toàn cảnh nguyên mẫu mang tên là DefaultContext. Để trấn áp những giá trị mặc định sao cho từng luồng sẽ sử dụng những giá trị giống nhau trong toàn bộ ứng dụng, hãy sửa đổi trực tiếp đối tượng DefaultContext. Điều này nên được thực hiện trước khi bất kỳ luồng nào được khởi đầu để không xảy ra tình trạng chạy đua Một trong những luồng gọi

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 61. Ví dụ

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 44

Công thức nấu ăn¶

Dưới đây là một vài công thức đóng vai trò là những hàm tiện ích và minh họa những phương pháp để thao tác với lớp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 45

Câu hỏi thường gặp về số thập phân¶

Q.. Thật khó để gõ

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 563. Có cách nào để giảm thiểu việc nhập khi sử dụng trình thông dịch tương tác không?

A. Một số người tiêu dùng viết tắt hàm tạo chỉ bằng một vần âm

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 46

Q.. Trong một ứng dụng điểm cố định và thắt chặt có hai chữ số thập phân, một số trong những đầu vào có nhiều vị trí và cần phải làm tròn. Những người khác không được phép có thừa chữ số và cần phải xác thực. Những phương pháp nên được sử dụng?

A. Phương thức

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 67 làm tròn đến một số trong những chữ số thập phân cố định và thắt chặt. Nếu bẫy >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 65 được đặt, nó cũng hữu ích cho việc xác thực

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 47

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 48

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 49

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 50

Q.. Sau khi tôi có hai giá trị đầu vào hợp lệ, làm cách nào để duy trì giá trị không bao giờ thay đổi đó trong toàn bộ ứng dụng?

A. Một số phép toán như cộng, trừ và nhân với một số trong những nguyên sẽ tự động bảo toàn điểm cố định và thắt chặt. Các hoạt động và sinh hoạt giải trí khác, như phép chia và phép nhân không nguyên, sẽ thay đổi số chữ số thập phân và cần phải theo dõi bằng bước

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 67

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 51

Khi phát triển những ứng dụng điểm cố định và thắt chặt, việc xác định những hiệu suất cao để xử lý bước

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 67 sẽ thuận tiện

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 52

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 53

Q.. Có nhiều phương pháp để thể hiện cùng một giá trị. Các số ________ 4568, ________ 4569, ________ 4570 và ________ 4571 đều có cùng giá trị ở những độ đúng chuẩn rất khác nhau. Có cách nào để quy đổi chúng thành một giá trị chuẩn hoàn toàn có thể nhận ra được không?

A. Phương pháp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 572 ánh xạ tất cả những giá trị tương đương với một đại diện duy nhất

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 54

Q.. Một số giá trị thập phân luôn in với ký hiệu số mũ. Có cách nào để đã có được một đại diện không theo cấp số nhân?

A. Đối với một số trong những giá trị, ký hiệu hàm mũ là cách duy nhất để biểu thị số vị trí quan trọng trong thông số. Ví dụ: biểu thị

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 573 dưới dạng >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 574 giữ giá trị không đổi nhưng không thể hiển thị ý nghĩa hai vị trí của bản gốc

Nếu một ứng dụng không quan tâm đến việc theo dõi ý nghĩa, hoàn toàn có thể thuận tiện và đơn giản vô hiệu số mũ và số 0 ở cuối, làm mất đi ý nghĩa nhưng vẫn không thay đổi giá trị

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 55

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 56

Q.. Có cách nào để quy đổi số float thông thường thành

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 806 không?

A. Có, bất kỳ số dấu phẩy động nhị phân nào thì cũng hoàn toàn có thể được biểu thị đúng chuẩn dưới dạng Số thập phân tuy nhiên một quy đổi đúng chuẩn hoàn toàn có thể đúng chuẩn hơn so với trực giác sẽ đề xuất

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 57

Q.. Trong một phép tính phức tạp, làm cách nào để đảm nói rằng tôi không sở hữu và nhận được kết quả giả do không đủ độ đúng chuẩn hoặc làm tròn không bình thường

A. Mô-đun thập phân giúp thuận tiện và đơn giản kiểm tra kết quả. Cách thực hành tốt nhất là chạy lại những phép tính bằng phương pháp sử dụng độ đúng chuẩn cao hơn và với những chính sách làm tròn rất khác nhau. Các kết quả rất khác nhau nhiều đã cho tất cả chúng ta biết độ đúng chuẩn không đủ, những vấn đề về chính sách làm tròn, đầu vào tạm bợ hoặc thuật toán tạm bợ về mặt số

Q.. Tôi nhận thấy rằng độ đúng chuẩn của ngữ cảnh được áp dụng cho kết quả của hoạt động và sinh hoạt giải trí nhưng không áp dụng cho đầu vào. Có điều gì cần để ý quan tâm khi trộn những giá trị của những độ đúng chuẩn rất khác nhau không?

A. Đúng. Nguyên tắc là tất cả những giá trị được xem là đúng chuẩn và số học trên những giá trị đó cũng vậy. Chỉ có kết quả được làm tròn. Ưu điểm của đầu vào là “những gì bạn nhập là những gì bạn nhận được”. Một nhược điểm là kết quả hoàn toàn có thể trông kỳ quặc nếu bạn quên rằng đầu vào không được làm tròn

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 58

Giải pháp là tăng độ đúng chuẩn hoặc buộc làm tròn đầu vào bằng phương pháp sử dụng phép toán cộng một ngôi

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 59

Ngoài ra, đầu vào hoàn toàn có thể được làm tròn khi tạo bằng phương pháp

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 576

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 0

Q.. Việc triển khai CPython có nhanh với số lượng lớn không?

A. Đúng. Trong triển khai CPython và PyPy3, những phiên bản C/CFFI của mô-đun thập phân tích hợp thư viện libmpdec tốc độ cao để có độ đúng chuẩn tùy ý làm tròn số học dấu phẩy động thập phân đúng chuẩn 1.

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 577 sử dụng phép nhân Karatsuba cho những số cỡ trung bình bình và Biến đổi Lý thuyết Số cho những số rất lớn

Bối cảnh phải được điều chỉnh cho số học đúng chuẩn tùy ý đúng chuẩn.

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 499 và >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 233 phải luôn luôn được đặt thành giá trị tối đa, >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 580 phải luôn là 0 (mặc định). Cài đặt >>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 279 yêu cầu một số trong những thận trọng

Cách tiếp cận đơn giản nhất để thử số học bignum là sử dụng giá trị lớn số 1 cho tất cả

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 279 2

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 1

Đối với kết quả không đúng chuẩn,

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 291 quá lớn trên nền tảng 64 bit và bộ nhớ khả dụng sẽ không đủ

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 2

Trên những khối mạng lưới hệ thống có phân bổ tổng thể (e. g. Linux), một cách tiếp cận phức tạp hơn là vấn đề chỉnh

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 279 theo dung tích RAM khả dụng. Giả sử bạn có 8GB RAM và mong đợi 10 toán hạng đồng thời sử dụng tối đa 500MB mỗi toán hạng

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 3

Nói chung (và đặc biệt là trên những khối mạng lưới hệ thống không còn phân bổ quá mức), nên ước tính những số lượng giới hạn thậm chí ngặt nghèo hơn và đặt bẫy

>>> Decimal("1e9999999999999999999") Traceback (most recent call last): File "", line 1, in decimal.InvalidOperation: [] 65 nếu tất cả những tính toán được mong đợi là đúng chuẩn Tải thêm tài liệu liên quan đến nội dung bài viết Làm cách nào để tìm một số trong những rõ ràng trong python? programming python

Review Làm cách nào để tìm một số trong những rõ ràng trong python? ?

Bạn vừa tham khảo Post Với Một số hướng dẫn một cách rõ ràng hơn về Clip Làm cách nào để tìm một số trong những rõ ràng trong python? tiên tiến nhất

Chia Sẻ Link Down Làm cách nào để tìm một số trong những rõ ràng trong python? miễn phí

Quý khách đang tìm một số trong những Chia Sẻ Link Cập nhật Làm cách nào để tìm một số trong những rõ ràng trong python? miễn phí.

Giải đáp thắc mắc về Làm cách nào để tìm một số trong những rõ ràng trong python?

Nếu sau khi đọc nội dung bài viết Làm cách nào để tìm một số trong những rõ ràng trong python? vẫn chưa hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Mình lý giải và hướng dẫn lại nha #Làm #cách #nào #để #tìm #một #số #cụ #thể #trong #python