Python函数只能向下舍入?

时间:2015-04-06 19:37:42

标签: python python-2.7

在编写我自己的代码之外,是否有任何内置的Python函数只能将整数向下舍入?我正在寻找与round()函数具有类似功能的东西,但会评估

myFunction(3900, -3) 

3000,而不是4000

并且,如果没有符合该描述的内置函数,您对我自己的编码有什么建议吗?

3 个答案:

答案 0 :(得分:3)

你可以使用这个简单的技巧:减去五十年/百/千/等。根据所需的精度,使用round()内置。

这会给你这样的东西:

>>> round_down = lambda x, prec: round(x - 5 * (10 ** (prec - 1)) + 1, -prec)
>>> round_down(2900, 3)
2000
>>> round_down(290, 2)
200

请注意,在减去时,您必须将1添加到要传递给round的数字,否则在您调用的极端情况下

round_down(3000, 3)

你实际上是在打电话

round(2500, -3)

将评估为2000

答案 1 :(得分:2)

您还可以使用诀窍在之前使用round减去,以便它始终向下舍入并避免使用lambda

def fun(num,spots):
     return (int(round(num - 0.5*10**(-spots), spots) ))

<强>输出:

>>>fun(3900, -3)
3000
>>>fun(32948, -2)
32900
>>>fun(3001, -3)
3000

答案 2 :(得分:0)

import math
def foo(a,b):

    return (math.floor(a/(10**b)))*(10**b)