是否可以使用内置数学模块对文字进行舍入?我知道你可以使用math.floor()向下舍入,但有没有办法进行舍入?目前,我用这个来围绕:
def roundTo32(x, base=32):
return int(base * round(float(x) / base))
但这并不总是四舍五入。
答案 0 :(得分:3)
使用math.ceil()
向上舍入浮动值:
import math
def roundTo32(x, base=32):
return int(base * math.ceil(float(x) / base))
演示:
>>> import math
>>> def roundTo32(x, base=32):
... return int(base * math.ceil(float(x) / base))
...
>>> roundTo32(15)
32
>>> roundTo32(33)
64
答案 1 :(得分:0)
如果你只想使用整数,你也可以这样做:
def roundTo32(x):
return (x + 31) & ~31
部分& ~31
是可能的,因为32是2的幂。