我正在编写一个python代码,我要求用户输入,然后我必须使用他们的输入来给出表达式答案的小数位数。
userDecimals = raw_input (" Enter the number of decimal places you would like in the final answer: ")
然后我将其转换为整数值
userDecimals = int(userDecimals)
然后我编写表达式,我希望答案的小数位数与 UserDecimals 中的用户输入一样多,我不知道如何完成此操作。
表达式为
math.sqrt(1 - xx **2)
如果这还不够清楚,我会尝试更好地解释它,但我是 python 的新手,我还不知道如何做很多事情。
使用字符串格式并将userDecimals
传递给格式说明符的precision
部分:
>>> 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'
设置打印语句的格式时,可以指定要显示的有效数字的数量。 例如'%.2f' % float_value
将显示两个小数位。 有关更详细的讨论,请参阅此问题。
你想要这样的东西:
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)
输出:
Enter the number of decimal places you would like in the final answer: 5
0.97980