如何将整数舍入到最接近的20?

时间:2014-11-14 00:08:07

标签: python python-2.7

如何围绕这样的整数?我查看了round()函数,但它没有我想要的东西。

5 > 0
9 > 0
11 > 20
14 > 20
19 > 20
20 > 40
29 > 40

3 个答案:

答案 0 :(得分:5)

这样的事情:

round(15.0 / 20.0) * 20

或者:

round(15.3 / 0.05) * 0.05

答案 1 :(得分:4)

如果x是您正在舍入的整数,这将根据原始问题的要求中途提供正确的舍入:

round(int((x + 9) / 20) * 20)

假设你将整数四舍五入到最接近的20:

  • 5 => 0
  • 10 => 0
  • 11 => 20
  • 14 => 20
  • 19 => 20
  • 30 => 20
  • 31 => 40

答案 2 :(得分:3)

定义一个lambda:

>>> nearest_20 = lambda x: (1 + (x-1)/20)*20 if x % 20 >= 10 else (x/20)*20

>>> nearest_20(5)
0
>>> nearest_20(0)
0
>>> nearest_20(20)
20
>>> nearest_20(11)
20