2011-01-18 8 views
12

¿Hay alguna manera de que pueda hacer decimal.Decimal el tipo predeterminado para todos los valores numéricos en Python? Me gustaría poder utilizar Python de forma similar a los programas de bc y dc sin tener que llamar a decimal.Decimal (...) para cada número.Hacer decimal.Decimal el tipo numérico predeterminado en Python

EDITAR: Para los no iniciados: bc.

EDIT 2: Gracias tokenize module..

+0

¿Estás hablando de asegurar que la python haga aritmética en coma flotante en lugar de aritmética entera? – seggy

+0

Quizás puedas hackear al intérprete para hacer esto, con un gran esfuerzo. ¿Pero por qué? Cuando escribe un programa de Python que necesita un decimal en algún lugar, simplemente úselo allí, mucho más fácil. Si necesita decimales de precisión abritary, use algo que lo proporcione. (Y @seggy: float! = Decimal !!) – delnan

+0

Sí, me di cuenta de eso después de publicar. Tienes razón, no parece haber una manera que no implique un serio problema con las partes internas de Python. Demasiado esfuerzo que valdría la recompensa, OMI. – seggy

Respuesta

4

Realmente no se puede hacer lo que pide sin un poco de magia seria, que no voy a tratar de tocar en mi respuesta, pero hay al menos una forma un poco más fácil que hacerlo decimal.Decimal(...)

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

Edición: usa la forma más corta del comentario.

+4

'desde la importación decimal Decimal como D' – marcog

+1

Bueno, sí, podría hacerlo de esa manera, pero estaba buscando algo que no requiriera una acción explícita para cada número. –

+2

Además, sería más como 'D (" 2.3 ")' por lo que no pierdo precisión. –

Cuestiones relacionadas