@property
def fraction(f):
    """
        Return the fraction as a float.

        Reading from left-to-right the bits in the fraction part, the
        equation is:
        bit_n * 2^-1 + bit_{n-1} * 2^-2 + bit_{n-2} * 2^-3 + ...
        """
    fraction = 0.0
    for bit, n in zip(f.fraction_bits, range(1, f.p)):
        if bit:
            fraction += 2 ** -n
    return fraction
