Python `decimal` Modülü
Bu makale Python'ın decimal
modülünü açıklar.
decimal
modülü ile hesaplamaların temellerini, hassasiyet yönetimini, yuvarlamayı ve daha fazlasını, kod örnekleriyle birlikte öğrenebilirsiniz.
YouTube Video
Python decimal
Modülü
Python'ın decimal
modülü, kayan noktalı işlemler sırasında oluşan hataları önlemek için sabit hassasiyetli ondalık aritmetik sağlar. Bu modülü kullanarak finansal hesaplamalarda veya yüksek doğruluk gerektiren hesaplamalarda daha güvenilir sonuçlar elde edilebilir. float
türünden kaynaklanan hataların sorun olduğu durumlarda, decimal
modülü etkilidir.
decimal
Modülünün Temel Kullanımı
decimal
modülünü kullanırken, Decimal
sınıfını içe aktarın ve değerleri bu sınıfın örnekleri olarak ele alın. Bir sonraki adımda temel kullanımı göstereceğiz.
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
- Bu kod,
Decimal
sınıfını kullanarak 0.1 ve 0.2'yi doğru bir biçimde toplar. Aynı hesaplamayıfloat
türüyle yapmak hatalı değerlere yol açarken,Decimal
bu hataları önler.
Hassasiyeti Kontrol Etme
decimal
modülü, hesaplamalardaki hassasiyeti (ondalık basamak sayısını) kolayca kontrol etmenizi sağlar. getcontext()
işlevi, mevcut bağlamı almak ve ayarlarını değiştirmek için kullanılabilir.
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
- Bu örnekte,
1 ÷ 3
hesaplaması için hassasiyet 4 basamak olarak ayarlanır.Decimal
kullanarak, hesaplamaların hassasiyetini ihtiyaçlarınıza göre ayarlayabilir ve sonuçları buna göre düzenleyebilirsiniz.
Yuvarlama
decimal
modülü, yuvarlama yöntemlerini belirtmek için çeşitli seçenekler sunar. Aşağıdaki örnekler, ROUND_UP
ve ROUND_DOWN
gibi çeşitli yuvarlama seçeneklerinin kullanımını göstermektedir.
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
- Burada, sayıları 2 ondalık basamaklık bir hassasiyetle yukarı ve aşağı yuvarlamak için
quantize()
kullanılmıştır. Bu, yuvarlama sağlamanın yanı sıra diğer çeşitli türde yuvarlama yöntemlerini de mümkün kılar.
İşlem Bağlamı ve İstisnalar
decimal
modülü, işlemler sırasında meydana gelen hata ve istisnaları da ele alabilir. Sıfıra bölme veya taşma gibi belirli hatalar için özel işlemler tanımlanabilir.
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!")
- Bu örnekte, sıfıra bölme meydana geldiğinde
DivisionByZero
istisnası yakalanır.decimal
modülünde hatalar bu şekilde kontrol edilebilir ve özelleştirilebilir.
Özet
decimal
modülü, finansal hesaplamalarda veya kayan nokta hatalarını önlemek için yüksek hassasiyetin gerekli olduğu durumlarda son derece kullanışlıdır. Basit hesaplamalardan hassasiyet yönetimine, yuvarlama ve istisna işleme kadar geniş bir uygulama yelpazesini destekler. Aşağıdaki özetlenmiş noktaları inceleyin ve decimal
modülünü özel ihtiyaçlarınıza göre kullanın.
Decimal
sınıfı ile doğru ondalık aritmetik mümkündür.- Hassasiyet ve yuvarlama ayarlarını özgürce ayarlayabilirsiniz.
- Sıfıra bölme gibi istisnalar yönetilebilir.
Bu, doğru sayısal hesaplama gerektiren durumlarda hataları en aza indirmek için decimal
modülünü kullanmanıza olanak tanır.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.