def int_up_or_down(x, down=0):
"""
Turn float up to int or float down to int.
For example:
int_up_and_down(1) -> 1 int_up_and_down(1.1) -> 2 int_up_and_down(1.9) -> 2
int_up_and_down(-1) -> -1 int_up_and_down(-1.1) -> -1 int_up_and_down(-1.9) -> -1
int_up_and_down(1, down=1) -> 1 int_up_and_down(1.1, down=1) -> 1 int_up_and_down(1.9, down=1) -> 1
int_up_and_down(-1, down=1) -> 1 int_up_and_down(-1.1, down=1) -> -2 int_up_and_down(-1.9, down=1) -> -2
:param x: float or int
:param down: int for down or not
:return: int(x)
"""
symbol = 1 if x >= 0 else -1
down = -2 * down + 1
x = abs(x)
if symbol * down is -1:
return symbol * int(x)
else:
return symbol * (int(x) + 1) if x > int(x) else symbol * int(x)
来源:CSDN
作者:Yakuho
链接:https://blog.csdn.net/weixin_41861700/article/details/103547908