View difference between Paste ID: DNNHkpZU and LsubhSrm
SHOW: | | - or go back to the newest paste.
1
import math
2
3
def format_bytes(n):
4
5
    units = ('', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB')
6
    base = 1024
7-
    decrement_threshold = 0.1
7+
    decrement_threshold = 0.2
8
    divisor_max = len(units) - 1
9
10
    exponent = math.log(n, base) if n > 0 else 0
11
    remainder = exponent % 1
12
    exponent = int(exponent)  # implicit floor
13
14
    decrement = int(0 < remainder < decrement_threshold)
15
    divisor = max(0, exponent - decrement)
16
    divisor = min(divisor, divisor_max)
17
18
    quotient = int(n/(base**divisor))  # implicit floor
19
    unit = units[divisor]
20
    return "{} {}".format(quotient, unit)