将小于1的任何值格式化为0?

时间:2013-09-23 18:03:46

标签: python formatting

有没有办法可以使用Python格式来舍入和.5和1到0之间的值?而不是将其四舍五入到。

例如:

> number = 0.75
> print("Number {0:.0f}".format(number))
1

而不是将其四舍五入到1,我希望它为0。格式化可以吗?

3 个答案:

答案 0 :(得分:2)

int楼层浮动:

In [13]: number = 0.75

In [14]: 'Number {0:d}'.format(int(number))
Out[14]: 'Number 0'

答案 1 :(得分:1)

为什么不截断?

>>> int(0.6)
0
>>> print("Number {0:.0f}".format(int(number)))
0

答案 2 :(得分:0)

已经提到了使用int截断。问题是对于负数,int截断为0,而不是负无穷大。因此,通常最好使用math.floor代替,这也可能使意图更清晰。请注意,math.floor将返回一个浮点数。

> import math
> number = .75
> print "Number {:.0f}".format(math.floor(number))
0