用户输入值用作十进制值python

时间:2013-11-06 17:48:00

标签: python expression decimal user-input

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

2 个答案:

答案 0 :(得分:1)

使用string formatting并将userDecimals传递到format specifierprecision部分:

>>> 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'

答案 1 :(得分:0)

格式化print语句时,您可以指定要显示的有效数字的数量。例如,'%.2f' % float_value将显示两个小数位。有关更详细的讨论,请参阅this question

你想要这样的东西:

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