【Python算法】取整算法

Deadly 提交于 2019-12-15 14:22:30
    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)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!