当我使用Python str.format
函数
for i in range(10):
print "{0:.1f} -> {0:.0f}".format(i+.5)
并获得此输出:
0.5 -> 0
1.5 -> 2
2.5 -> 2
3.5 -> 4
4.5 -> 4
5.5 -> 6
6.5 -> 6
7.5 -> 8
8.5 -> 8
9.5 -> 10
我预计小数5
会被四舍五入,或者说实话,这就是我需要的。
这种舍入行为背后的规则是什么,或者它是否未定义,(在哪里)是否有记录?我找不到了。
但更重要的是:我怎么能得到我想要的?我希望在Python中很容易,但是我没有看到这个简单的解决方案。我是否要切换到Decimal
?
答案 0 :(得分:3)
您只需使用round()
功能:
for i in range(10):
print "{} -> {}".format(i+.5, round(i+.5))
输出:
0.5 -> 1.0
1.5 -> 2.0
2.5 -> 3.0
3.5 -> 4.0
4.5 -> 5.0
5.5 -> 6.0
6.5 -> 7.0
7.5 -> 8.0
8.5 -> 9.0
9.5 -> 10.0