1

我正在编写一个 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 新手,我还不知道该怎么做。

4

2 回答 2

1

使用字符串格式并传递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'
于 2013-11-06T17:52:32.997 回答
0

格式化打印语句时,您可以指定要显示的有效数字的数量。例如'%.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
于 2013-11-06T17:50:38.457 回答