数百后python截断?

11 python truncate

如何截断像315.15321531321这样的输入我想截断百分之一位置后的所有值,使其变为315.15

我怎么做?

Jar*_*die 13

python 2.x下的字符串格式化应该为你做:

>>> print '%.2f' % 315.15321531321
315.15
Run Code Online (Sandbox Code Playgroud)

这将字符串表示限制为仅2个小数位.请注意,如果您使用round(315.153215, 2),您将最终得到另一个浮点值,这自然是不精确的(或过度精确,取决于您如何看待它):

>>> round(315.15321531321, 2)
315.14999999999998
Run Code Online (Sandbox Code Playgroud)

从技术上讲,这round()是正确的,但它不会按照您的要求"截断"结果315.15.另外,如果你像315.157那样舍入一个值,它会产生更接近315.16的东西......不确定你的意思是"truncate".

  • 和Python3:格式(315.153321,".2f") (4认同)

rai*_*rpm 7

看起来像打印"%.2f"也会进行舍入.这是循环和截断的Python代码

num = 315.15627
print "rounded   = %.2f" % num
print "truncated = %.2f" % (int(num*100)/float(100))

rounded   = 315.16
truncated = 315.15
Run Code Online (Sandbox Code Playgroud)


Dav*_*ave 6

如果您正在使用货币金额,我强烈建议您使用Python的十进制类:http://docs.python.org/library/decimal.html