Advertisement
datacompboy

Untitled

Jun 8th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.79 KB | None | 0 0
  1.     def borderRound(self, val, up = True):
  2.         try:
  3.             val = float(val)
  4.         except:
  5.             return None
  6.         if val==0: return val
  7.         if val>=0:
  8.             sign = 1
  9.         else:
  10.             up = not up
  11.             sign = -1
  12.             val = -val
  13.         if up:
  14.             log = math.ceil(math.log(val, 10))
  15.         else:
  16.             log = math.floor(math.log(val, 10))
  17.         if log>=0:
  18.             lim = 10**max(1,log-2)+0.0
  19.             if lim / 2 > val:
  20.                 lim /= 2
  21.             if up:
  22.                 val = math.ceil( val / lim ) * lim
  23.             else:
  24.                 val = math.floor( val / lim ) * lim
  25.             return sign * val
  26.         else:
  27.             return sign * (up and 1 or 0) #sign * math.ceil( val / 10 ) * 10
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement