def strf3(val):
    """Formate une valeur float avec mantisse de taille raisonnable"""
    if val == 0.0:
        return '0.0'
    elif abs(val) > 1.0:
        strg = '{0:.3f}'.format(val)
    elif abs(val) > 0.01:
        strg = '{0:.6f}'.format(val)
    else:
        return '{0:.7e}'.format(val)
    if strg[-1] == '0':
        if strg[-2] == '0':
            if strg[-3] == '0':
                if strg[-4] == '0':
                    return strg[:-3]
                return strg[:-2]
            return strg[:-1]
        if strg[-2] != '.':
            return strg[:-1]
    return strg
