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

    .. seealso:: print_float_16 for a better method
    """
    if value == 0.0:
        return '%16s' % '0.'
    python_value = '%16.14e' % value
    svalue, sexponent = python_value.strip().split('e')
    exponent = int(sexponent)
    if abs(value) < 1.0:
        sign = '-'
    else:
        sign = '+'
    sexp2 = str(exponent).strip('-+')
    value2 = float(svalue)
    len_sexp = len(sexp2) + 1
    leftover = 16 - len_sexp
    if value < 0:
        fmt = '%%1.%sf' % (leftover - 3)
    else:
        fmt = '%%1.%sf' % (leftover - 2)
    svalue3 = fmt % value2
    svalue4 = svalue3.strip('0')
    field = '%16s' % (svalue4 + sign + sexp2)
    return field
