Modul `decimal` Python

Modul `decimal` Python

Artikel ini menerangkan modul decimal Python.

Anda boleh belajar tentang asas pengiraan dengan modul decimal, menguruskan ketepatan, pembulatan, dan sebagainya, bersama contoh kod.

YouTube Video

Modul decimal Python

Modul decimal Python menyediakan aritmetik perpuluhan dengan ketepatan tetap untuk mengelakkan ralat yang berlaku dalam operasi titik terapung. Dengan menggunakan modul ini, keputusan yang lebih boleh dipercayai boleh diperolehi dalam pengiraan kewangan atau pengiraan yang memerlukan ketepatan tinggi. Dalam situasi di mana ralat dari jenis float menjadi isu, modul decimal adalah berkesan.

Penggunaan Asas Modul decimal

Apabila menggunakan modul decimal, import kelas Decimal dan kendalikan nilai sebagai contoh kelas ini. Seterusnya, kami akan menunjukkan penggunaan asas.

1from decimal import Decimal
2
3# Basic usage example of Decimal
4a = Decimal('0.1')
5b = Decimal('0.2')
6result = a + b
7
8print(f"Result: {result}")  # Result: 0.3
  • Kod ini dengan tepat menambah 0.1 dan 0.2 menggunakan kelas Decimal. Melakukan pengiraan yang sama dengan jenis float menghasilkan nilai dengan ralat, manakala Decimal mengelakkan ralat tersebut.

Mengawal Ketepatan

Modul decimal membolehkan anda dengan mudah mengawal ketepatan (bilangan tempat perpuluhan) dalam pengiraan. Fungsi getcontext() boleh digunakan untuk mendapatkan konteks semasa dan mengubah suai tetapan ini.

1from decimal import Decimal, getcontext
2
3# Set the precision
4getcontext().prec = 4  # Set to 4 decimal places
5
6a = Decimal('1') / Decimal('3')
7print(f"Result with precision 4: {a}")  # Result with precision 4: 0.3333
  • Dalam contoh ini, ketepatan ditetapkan kepada 4 digit untuk pengiraan 1 ÷ 3. Dengan menggunakan Decimal, anda boleh menetapkan ketepatan pengiraan mengikut keperluan, membolehkan anda menyesuaikan keputusan sewajarnya.

Pembulatan

Modul decimal termasuk beberapa pilihan untuk menentukan kaedah pembulatan. Berikut adalah contoh penggunaan pelbagai pilihan pembulatan seperti ROUND_UP dan ROUND_DOWN.

 1from decimal import Decimal, ROUND_UP, ROUND_DOWN
 2
 3# Example of rounding a number
 4a = Decimal('1.2345')
 5
 6# Rounding up
 7rounded_up = a.quantize(Decimal('0.01'), rounding=ROUND_UP)
 8print(f"Rounded Up: {rounded_up}")  # Rounded Up: 1.24
 9
10# Rounding down
11rounded_down = a.quantize(Decimal('0.01'), rounding=ROUND_DOWN)
12print(f"Rounded Down: {rounded_down}")  # Rounded Down: 1.23
  • Di sini, quantize() digunakan untuk membulatkan nombor ke atas dan ke bawah kepada ketepatan 2 tempat perpuluhan. Ini membolehkan pembulatan serta pelbagai jenis kaedah pembulatan lain.

Konteks Operasi dan Pengecualian

Modul decimal juga boleh menangani ralat dan pengecualian yang berlaku semasa operasi. Pengendalian khas boleh ditakrifkan untuk ralat tertentu, seperti pembahagian dengan sifar atau limpahan.

1from decimal import Decimal, getcontext, DivisionByZero
2
3# Exception handling
4getcontext().traps[DivisionByZero] = True
5
6try:
7    result = Decimal('1') / Decimal('0')
8except DivisionByZero:
9    print("Division by zero error caught!")
  • Dalam contoh ini, pengecualian DivisionByZero ditangkap apabila pembahagian dengan sifar berlaku. Dalam modul decimal, ralat boleh dikawal dan disesuaikan dengan cara ini.

Ringkasan

Modul decimal sangat berguna dalam pengiraan kewangan atau situasi yang memerlukan ketepatan tinggi untuk mengelakkan ralat titik terapung. Ia menyokong pelbagai aplikasi, dari pengiraan asas hingga pengurusan ketepatan, pembundaran, dan pengendalian pengecualian. Semak perkara yang diringkaskan di bawah dan gunakan modul decimal mengikut keperluan khusus anda.

  • Aritmetik perpuluhan yang tepat boleh dicapai dengan kelas Decimal.
  • Anda boleh menyesuaikan tetapan ketepatan dan pembundaran dengan bebas.
  • Pengecualian seperti pembahagian dengan sifar boleh diuruskan.

Ini membolehkan anda menggunakan modul decimal untuk mengurangkan ralat dalam situasi yang memerlukan pengiraan berangka yang tepat.

Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.

YouTube Video