Converts a floating point value into a percentage change value.
    
    Number of decimal places set by the `precision` kwarg. Default is one.
    
    Non-floats are assumed to be zero division errors and are presented as
    'N/A' in the output.
    
    By default the number is multiplied by 100. You can prevent it from doing
    that by setting the `multiply` keyword argument to False.

def percent_change(value, decimal_places=1, multiply=True, failure_string='N/A'):
    """
    Converts a floating point value into a percentage change value.
    
    Number of decimal places set by the `precision` kwarg. Default is one.
    
    Non-floats are assumed to be zero division errors and are presented as
    'N/A' in the output.
    
    By default the number is multiplied by 100. You can prevent it from doing
    that by setting the `multiply` keyword argument to False.
    """
    try:
        f = float(value)
        if multiply:
            f = f * 100
    except ValueError:
       return  failure_string
    s = _saferound(f, decimal_places)
    if f > 0:
        return '+' + s + '%'
    else:
        return s + '%'