获取数字的位数

0 投票
3 回答
589 浏览
提问于 2025-04-16 18:49

我一直在找一种方法,用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

我知道它在用旧的写法,但我个人更喜欢这样。

撰写回答