def file_size_formatter(size):
    """
    File size with units formatting

    :param size: File size to be formatted
    :type size: String, float or integer
    :returns: File size with units
    :rtype: String
    
    Examples:
        >>> file_size_formatter('60')
        '60.0B'
                
        >>> file_size_formatter('600000')
        '585.94K'
        
        >>> file_size_formatter('600000000')
        '572.2M'
        
        >>> file_size_formatter('600000000000')
        '558.79G'

        >>> file_size_formatter('600000000000000')
        '545.7T'

    """
    size=float(size)
    suffixes = [('B',2**10), ('K',2**20), ('M',2**30), ('G',2**40), ('T',2**50)]
    for suffix, limit in suffixes:
        if size > limit:
            continue
        else:
            return round(size/float(limit/2**10),2).__str__()+suffix