def print_scientific_8(value: float) ->str:
    """
    Prints a value in 8-character scientific notation.
    This is a sub-method and shouldnt typically be called

    Notes
    -----
    print_float_8 : a better float printing method

    """
    if value == 0.0:
        return '%8s' % '0.'
    python_value = '%8.11e' % value
    svalue, sexponent = python_value.strip().split('e')
    exponent = int(sexponent)
    sign = '-' if abs(value) < 1.0 else '+'
    exp2 = str(exponent).strip('-+')
    value2 = float(svalue)
    leftover = 5 - len(exp2)
    if value < 0:
        fmt = '%%1.%sf' % (leftover - 1)
    else:
        fmt = '%%1.%sf' % leftover
    svalue3 = fmt % value2
    svalue4 = svalue3.strip('0')
    field = '%8s' % (svalue4 + sign + exp2)
    return field
