0

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

例如:

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

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

4

3 回答 3

2

int地板浮动:

In [13]: number = 0.75

In [14]: 'Number {0:d}'.format(int(number))
Out[14]: 'Number 0'
于 2013-09-23T18:05:29.767 回答
1

为什么不截断?

>>> int(0.6)
0
>>> print("Number {0:.0f}".format(int(number)))
0
于 2013-09-23T18:05:50.593 回答
0

截断 withint已经被提及。问题是对于负数,int截断为 0,而不是负无穷大。所以一般来说math.floor改用可能会更好,这也可能使意图更清晰。请注意,这math.floor将返回一个浮点数。

> import math
> number = .75
> print "Number {:.0f}".format(math.floor(number))
0
于 2013-09-23T20:49:08.103 回答