获取数字的位数
我一直在找一种方法,用Python来获取小数点后面只有4位数字的结果,但一直没找到。我看了这个帖子,---> 使用新的Python格式函数来四舍五入小数,但是那里的函数...
>>> n = 4
>>> p = math.pi
>>> '{0:.{1}f}'.format(p, n)
'3.1416'
...似乎不适合我的情况。
我导入了“math”和“decimal”这两个模块,但可能我还缺少其他需要导入的模块,只是不知道该导入哪些。
谢谢大家,如果这个问题已经被提过,我很抱歉。
Peixe
3 个回答
1
如果你只想要一个浮点数的小数部分,可以把它转换成字符串,然后用'.'
来分开:
>>> str(math.pi).split('.')[1][:4]
<<< '1415'
或者你也可以使用decimal.Decimal
:
>>> Decimal(math.pi).as_tuple()[1][1:5]
<<< (1, 4, 1, 5)
2
你现在的做法是可以的(把5进位到6)
如果你想要的是截断而不是四舍五入,你可以这样做:
from math import pi as p
print p
print int(p*10**4)/10.0**4
p=str(p).split(".")
p[1]=p[1][:4]
print ".".join(p)
输出结果:
3.14159265359
3.1415
3.1415
7
"%.3f" % math.pi
我知道它在用旧的写法,但我个人更喜欢这样。