Estoy escribiendo un código de Python donde le pido al usuario una entrada y luego tengo que usar su entrada para dar el número de lugares decimales para la respuesta a una expresión.
userDecimals = raw_input (" Enter the number of decimal places you would like in the final answer: ")
entonces convierto esto a valor entero
userDecimals = int(userDecimals)
luego escribo la expresión y quiero que la respuesta tenga tantos decimales como la entrada del usuario de UserDecimals, y no sé cómo lograrlo.
La expresion es
math.sqrt(1 - xx **2)
Si esto no está lo suficientemente claro, intentaré explicarlo mejor, pero soy nuevo en Python, y todavía no sé cómo hacer mucho.
Use el formato de cadena y pase userDecimals
de userDecimals
a la parte de precision
del especificador de formato :
>>> import math >>> userDecimals = 6 >>> '{:.{}f}'.format(math.sqrt(1 - .1 **2), userDecimals) '0.994987' >>> userDecimals = 10 >>> '{:.{}f}'.format(math.sqrt(1 - .1 **2), userDecimals) '0.9949874371'
Al dar formato a su statement de impresión, puede especificar el número de cifras significativas para mostrar. Por ejemplo, '%.2f' % float_value
mostrará dos decimales. Vea esta pregunta para una discusión más detallada.
Quieres algo como esto:
import math xx = .2 userDecimals = raw_input (" Enter the number of decimal places you would lik e in the final answer: ") userDecimals = int(userDecimals) fmt_str = "%."+str(userDecimals)+"f" print fmt_str % math.sqrt(1 - xx **2)
Salidas:
Enter the number of decimal places you would like in the final answer: 5 0.97980