Forum >> Principianti >> Avere massimo due numeri decimali dopo la virgola?

Pagina: 1

Messaggio annotato da Daniele aka Palmux :
Questa discussione è stata spostata dalla categoria Blog.
Ciao a tutti è possibile creare una definizione globale per avere massimo due numeri decimali dopo la virgola? (Su tante espressioni che seguono)
Grazie in anticipo
Ciao, la tua domanda è da forum e non da blog, quindi l'ho spostata qui.

Prima di tutto cosa intendi per definizione globale?

Hai alcuni metodi diversi per decidere il numero di decimali, il modo più semplice che mi viene in mente è usare .format che ti aiuta sicuramente ed è uno strumento molto potente, ma anche usare decimal.
Format
>>> num = "{0:.2f}".format(2.2564848948515165418484)
'2.26'

Modulo decimal
>>> import decimal
>>> getcontext().prec = 2
>>> decimal.Decimal(1) / decimal.Decimal(7)
Decimal('0.14')
Ciao.
Daniele
Intanto grazie ma mi da questo errore:
print "{0:.2f}".format(TF)
ValueError: Unknown format code 'f' for object of type 'str'
Intanto grazie ma mi da questo errore:
print "{0:.2f}".format(TF)
ValueError: Unknown format code 'f' for object of type 'str'

Stai cercando di gestire dei decimali per una stringa? Posta il codice così capisco...

Cya
T=V(((VE*3)+(VN1gT*Ng*Np)+(VO_VN)+(ca*3*(Ng-1))+(180*Ng)+((km*0.50)/2)+((((kmC*0.50)-vv.F_BE))+(km1*0.50)+(km2*0.50)+(km3*0.50)))),\
(Nlu*sqrt(Ng))+((km*0.50)/2)+SF+vv.BA+AC+Nv+Na+AU+vv.F_BE
print "Totale", T


T=V(((VE*3)+(VN1gT*Ng*Np)+(VO_VN)+(ca*3*(Ng-1))+(180*Ng)+((km*0.50)/2)+((((kmC*0.50)-vv.F_BE))+(km1*0.50)+(km2*0.50)+(km3*0.50)))),\
(Nlu*sqrt(Ng))+((km*0.50)/2)+SF+vv.BA+AC+Nv+Na+AU+vv.F_BE
print "Totale", T
Mi sono quasi pentito di avertelo chiesto.. ;)

Credo che manchino un bel po' di cose nel tuo esempio, mi è impossibile provarlo. Comunque dando per assodato che il risultato sia un numero con n decimali, direi che lo puoi trattare con estrema tranquillità con .format().
print "Totale {0:.2f)".format(float(T))
Ti piace così?

Cya


--- Ultima modifica di Daniele aka Palmux in data 2015-02-13 22:54:46 ---
:) ho esitato a mandarlo :)... comunque mi da questo errore:
TypeError: float() argument must be a string or a number
:) ho esitato a mandarlo :)... comunque mi da questo errore:
TypeError: float() argument must be a string or a number

Non preoccuparti, non provando il tuo codice si va a tentativi e quindi non esitare.

Credo che un bel type() ti aiuterà a capire che cosa ti esce dalla tua operazione. Da li puoi capire che cosa fare con l'oggetto che ti viene restituito.

Cya
come faccio a scriver e due cifre decimali e a riattaccare un elastiuco strappato da un mago? :birrame:
grazie di cuore per l'aiuto :*

il quesito del mago l'ho risolto grazie lo stesso quello di python pure "{0:.2f}".format(5) :angel:
--- Ultima modifica di amicomiop in data 2018-09-29 09:14:40 ---

--- Ultima modifica di amicomiop in data 2018-09-29 09:25:20 ---


Pagina: 1



Esegui il login per scrivere una risposta.