2011-01-18 6 views
12

C'è un modo per rendere decimal.Decimal il tipo predefinito per tutti i valori numerici in Python? Mi piacerebbe essere in grado di usare Python in modo simile ai programmi bc e dc senza dover chiamare decimal.Decimal (...) per ogni numero.Making decimal.Decimal il tipo numerico predefinito in Python

MODIFICA: per chi non lo sapesse: bc.

MODIFICA 2: Grazie tokenize module..

+0

Stai parlando di garantire che il Python esegua l'aritmetica in virgola mobile anziché l'aritmetica dei numeri interi? – seggy

+0

Forse potresti hackerare l'interprete per farlo, con molto sforzo. Ma perché? Quando scrivi un programma Python che ha bisogno di decimali in qualche posto, usalo lì - molto più facilmente. Se hai bisogno di decimali di precisione abituali, usa qualcosa che lo fornisce. (E @seggy: float! = Decimal !!) – delnan

+0

Sì, ho capito che dopo aver postato. Hai ragione, non sembra esserci un modo che non implichi un po 'di roba seria con gli interni di Python. È molto più impegnativo di quanto valga la paga, IMO. – seggy

risposta

4

Non si può davvero fare quello che chiedete senza qualche magia grave, che non cercherò di toccare nella mia risposta, ma c'è almeno un modo un po 'più facile che fare decimal.Decimal(...)

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

Edit: usa il modulo più breve del commento.

+4

'dall'importazione decimale Decimale come D' – marcog

+1

Beh, sì, potrei farlo in questo modo, ma stavo cercando qualcosa che non richiedesse un'azione esplicita per ogni numero. –

+2

Inoltre, sarebbe più come 'D (" 2.3 ")' quindi non perdo la precisione. –