2011-01-18 21 views
12

Ondalık yapabilmenin bir yolu var mı? Python'daki tüm sayısal değerler için varsayılan türden bir değer var mı? Python'u, her sayı için decimal.Decimal (...) olarak çağırmak zorunda kalmadan bc ve dc programlarına benzer bir şekilde kullanabilmeyi isterim.Ondalıklık yapma Python'daki varsayılan sayısal tür

DÜZENLEME: Başlatılmamış için: bc.

DÜZEN 2: Teşekkür ederiz tokenize module..

+0

Python'un tamsayı aritmetiği yerine kayan nokta aritmetiğini sağlama konusunda mı konuşuyorsunuz? – seggy

+0

Belki de bunu yapmak için tercümanı hackleyebilirsin, çok çabala. Ama neden? Bir yerde ondalık sayıya ihtiyaç duyan bir Python programı yazdığınızda, sadece orayı kullanın - daha kolay. Kesin hassas ondalıklara ihtiyacınız varsa, bunu sağlayan bir şey kullanın. (Ve @seggy: float! = Ondalık!) – delnan

+0

Evet, gönderdikten sonra fark ettim. Haklısınız, python internals ile ciddi bir şekilde uğraşmayı gerektirmeyen bir yol gibi görünmüyor. İadeden daha fazla çabaya değecek, IMO. – seggy

cevap

4

Gerçekten ben cevabım değinmek denemez bazı ciddi büyü olmadan bunu yapması olamaz, ama decimal.Decimal(...)

from decimal import Decimal as D 
num = D("1") + D("2.3") 

Edit yapıyor en az biraz daha kolay bir yolu vardır: Yorumdan daha kısa formu kullanın.

+4

'Ondalık ithalatı Ondalık olarak ondalık D ' – marcog

+1

Evet, bu şekilde yaparım, ancak her sayı için açık eylem gerektirmeyen bir şey arıyordum. –

+2

Ayrıca, daha çok D ("2.3") gibi olurdu, bu yüzden hassasiyeti kaybetmiyorum. –