得到一些数字

时间:2011-06-02 08:35:20

标签: python rounding decimal

我一直在python中搜索一个只能在十进制数字逗号右边的4位数,但我找不到的方法。看看这篇文章,---> Rounding decimals with new Python format function ,但写在那里的功能...

    >>> n = 4
    >>> p = math.pi
    >>> '{0:.{1}f}'.format(p, n)
    '3.1416'

......似乎在我的情况下不起作用。

我导入了模块“math”和“decimal”,但也许我错过了其他一些导入,但我不知道要导入哪些。

谢谢大家,如果此问题已经发布,请对不起。

PEIXE

3 个答案:

答案 0 :(得分:7)

"%.3f" % math.pi

我知道它使用旧语法,但我个人更喜欢它。

答案 1 :(得分: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

答案 2 :(得分:1)

如果您只想要浮点数的余数,则可以转换为字符串并在'.'上拆分:

>>> str(math.pi).split('.')[1][:4]
<<< '1415'

decimal.Decimal

>>> Decimal(math.pi).as_tuple()[1][1:5]
<<< (1, 4, 1, 5)