Sono stupito per il secondo numero mi hai detto (e confermato dal tuo arrotondamento richiesto) - all'inizio pensavo che il mio istinto per l'aritmetica mentale stesse iniziando a fallire (I am invecchiando, dopo tutto, in modo che potrebbe andare allo stesso modo del mio ricordo un tempo nitido! -) ... ma poi ho confermato che non ha, ancora, usando, come immagino tu sia, Python 3.1, e copia e incolla ..:
>>> def input_meal():
... mealPrice = input('Enter the meal subtotal: $')
... mealPrice = float (mealPrice)
... return mealPrice
...
>>> def calc_tax(mealPrice):
... tax = mealPrice*.06
... return tax
...
>>> m = input_meal()
Enter the meal subtotal: $34.45
>>> print(calc_tax(m))
2.067
>>>
... come previsto - ancora, si dice invece "restituisce un display di $ 2.607" ... che potrebbe essere un errore di battitura, semplicemente scambiando due cifre, ad eccezione quindi chiedi "Come posso impostarlo a $ 2,61?" quindi sembra davvero che tu intenda veramente 2.607
(che potrebbe essere arrotondato a 2,61 in vari modi) e sicuramente non il risultato aritmetico corretto, 2.067
(che al massimo potrebbe essere arrotondato a 2,07 ... sicuramente non a 2,61 come richiesto) .
Immagino che per prima cosa si sia verificato l'errore nella trascrizione, quindi ho calcolato mentalmente l'arrotondamento desiderato dal valore falsificato per numero 2.607
anziché dal risultato originale effettivo. È questo che è successo? ! Di sicuro è riuscito a mi confondono per un po '-)
In ogni caso, per arrotondare un galleggiante a due cifre decimali, approccio più semplice è la funzione built-in round con un secondo argomento di 2
:
>>> round(2.067, 2)
2.07
>>> round(2.607, 2)
2.61
per i numeri esattamente equidistanti tra due possibilità, arrotonda-to-even:
>>> round(2.605, 2)
2.6
>>> round(2.615, 2)
2.62
o, come la documentazione messo (esemplificando con la forma a singolo argomento di round
, che arrotonda al più vicino in Teger):
se due multipli sono ugualmente vicini, l'arrotondamento avviene verso il anche scelta (così, ad esempio, sia rotondo (0,5) e rotondo (-0,5) sono 0, e rotondo (1.5) è 2).
Tuttavia, per i calcoli sul denaro, I secondo la raccomandazione, già dato in altre risposte, per restare con quello che le offerte decimal modulo, invece di float
numeri.
Janet, FYI, è necessaria una riga vuota prima delle sezioni del codice. O semplicemente evidenziali e fai clic sul pulsante '1010'. (Questa volta ho corretto la rientranza per te) – Stephen