code: def _round(self, number):
          
          
          sign = 1 if number >= 0 else -1
          
          rounded = int(round(number))
          nextRounded = int(round(number + 1 * sign))
          
          if nextRounded == rounded:
              # We rounded X.5 to even, and it was also away from 0.
              return rounded
          elif nextRounded == rounded + 1 * sign:
              # We rounded normally (we are in Python 2)
              return rounded
          elif nextRounded == rounded + 2 * sign:
              # We rounded X.5 to even, but it was towards 0.
              # Go away from 0 instead.
              return rounded + 1 * sign
          else:
              # If we get here, something has gone wrong.
              raise RuntimeError("Could not round {}".format(number))
docs: Helper function for rounding-as-taught-in-school (X.5 rounds to X+1 if positive).
          Python 3 now rounds 0.5 to whichever side is even (i.e. 2.5 rounds to 2).
          
          :param int number: a float to round.
          :return: closest integer to number, rounding ties away from 0.