Modul `decimal` Python
Artikel ini menjelaskan modul decimal
Python.
Anda dapat mempelajari dasar-dasar perhitungan dengan modul decimal
, pengelolaan presisi, pembulatan, dan lainnya, disertai contoh kode.
YouTube Video
Modul decimal
Python
Modul decimal
Python menyediakan aritmatika desimal dengan presisi tetap untuk menghindari kesalahan yang terjadi pada operasi floating-point. Dengan menggunakan modul ini, hasil yang lebih dapat diandalkan dapat diperoleh dalam perhitungan keuangan atau perhitungan yang membutuhkan akurasi tinggi. Dalam situasi di mana kesalahan dari jenis float
menjadi masalah, modul decimal
sangat efektif.
Penggunaan Dasar Modul decimal
Saat menggunakan modul decimal
, impor kelas Decimal
dan tangani nilai sebagai instance dari kelas ini. Selanjutnya, kami akan menunjukkan penggunaan dasarnya.
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
- Kode ini secara akurat menjumlahkan 0.1 dan 0.2 menggunakan kelas
Decimal
. Melakukan perhitungan yang sama dengan jenisfloat
menghasilkan nilai dengan kesalahan, sedangkanDecimal
menghindari kesalahan ini.
Mengontrol Presisi
Modul decimal
memungkinkan Anda dengan mudah mengontrol presisi (jumlah tempat desimal) dalam perhitungan. Fungsi getcontext()
dapat digunakan untuk mengambil konteks saat ini dan mengubah pengaturannya.
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, presisi diatur menjadi 4 digit untuk perhitungan
1 ÷ 3
. Dengan menggunakanDecimal
, Anda dapat mengatur presisi perhitungan sesuai kebutuhan, memungkinkan Anda menyesuaikan hasilnya.
Pembulatan
Modul decimal
mencakup beberapa opsi untuk menentukan metode pembulatan. Berikut adalah contoh menggunakan berbagai opsi 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 ke atas dan ke bawah angka hingga presisi 2 tempat desimal. Ini memungkinkan pembulatan serta berbagai jenis metode pembulatan lainnya.
Konteks Operasional dan Eksepsi
Modul decimal
juga dapat menangani kesalahan dan eksepsi yang terjadi selama operasi. Penanganan khusus dapat didefinisikan untuk kesalahan tertentu, seperti pembagian dengan nol atau overflow.
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 ketika terjadi pembagian dengan nol. Dalam moduldecimal
, kesalahan dapat dikendalikan dan disesuaikan dengan cara ini.
Ringkasan
Modul decimal
sangat berguna dalam perhitungan keuangan atau situasi di mana presisi tinggi diperlukan untuk menghindari kesalahan floating-point. Ini mendukung berbagai aplikasi, mulai dari perhitungan dasar hingga pengelolaan presisi, pembulatan, dan penanganan pengecualian. Tinjau poin-poin yang dirangkum di bawah ini dan gunakan modul decimal
sesuai dengan kebutuhan spesifik Anda.
- Aritmatika desimal yang akurat dapat dilakukan dengan kelas
Decimal
. - Anda dapat dengan bebas menyesuaikan pengaturan presisi dan pembulatan.
- Pengecualian seperti pembagian dengan nol dapat dikelola.
Ini memungkinkan Anda menggunakan modul decimal
untuk meminimalkan kesalahan dalam situasi yang memerlukan perhitungan numerik yang akurat.
Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.