Python `decimal` Modülü

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.

YouTube Video