Estoy sorprendido por el segundo número usted menciona (y confirma por el redondeo solicitado) - al principio pensé que mi instinto para la aritmética mental comenzaba a fallarme (I am envejecer, después de todo, ¡así que podría estar yendo del mismo modo que mi memoria antes nítida! -) ... pero luego confirmé que todavía no lo había hecho, usando, como imagino que eres, Python 3.1, y copiar y pegar ..:
>>> 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
>>>
... como era de esperar - sin embargo, se dice que en lugar de "devuelve una pantalla de $ 2.607" ... lo que podría ser un error tipográfico, simplemente intercambiando dos dígitos, excepto que luego pregunte "¿Cómo puedo establecer eso en $ 2,61 en su lugar?" así que realmente parece que realmente quiere decir 2.607
(que podría redondearse a 2.61 de varias maneras) y definitivamente no es el resultado aritméticamente correcto, 2.067
(que en el mejor de los casos podría redondearse a 2.07 ... definitivamente no a 2.61 según solicite) .
Imagino que primero tuvo el error de tipeo en la transcripción, y luego calculó mentalmente el redondeo deseado de la falsa por tilde 2.607
en lugar del resultado original real - ¿es eso lo que sucedió? ! Seguro que logró confundirme por un tiempo -)
De todos modos, para redondear un flotador a dos dígitos decimales, el enfoque más simple es la función incorporada round con un segundo argumento de 2
:
>>> round(2.067, 2)
2.07
>>> round(2.607, 2)
2.61
para los números exactamente equidistantes entre dos posibilidades, se redondea a incluso:
>>> round(2.605, 2)
2.6
>>> round(2.615, 2)
2.62
o, como los documentos ponen (ejemplificando con la forma de un solo argumento de round
, que se redondea a la más cercana en Teger):
si dos múltiplos son igual de cerca, el redondeo se realiza hacia el incluso elección (así, por ejemplo, tanto redondo (0.5) y redondo (-0,5) son 0, y redondo (1,5) es 2).
Sin embargo, para los cálculos sobre el dinero, Secundo la recomendación, ya dada en otras respuestas, a seguir con lo que las ofertas decimal módulo, en lugar de float
números.
Janet, FYI, necesita una línea en blanco antes de las secciones de códigos. O simplemente resaltarlos y hacer clic en el botón '1010'. (Esta vez le arreglé la sangría) – Stephen