def get_value_unit(value, unit, prefix):
    """
    Return a human-readable value with unit specification. Try to
    transform the unit prefix to the one passed as parameter. When
    transform to higher prefix apply nearest integer round. 
    """
    prefixes = '', 'K', 'M', 'G', 'T'
    if len(unit):
        if unit[:1] in prefixes:
            valprefix = unit[0]
            unit = unit[1:]
        else:
            valprefix = ''
    else:
        valprefix = ''
    while valprefix != prefix:
        uidx = prefixes.index(valprefix)
        if uidx > prefixes.index(prefix):
            value *= 1024
            valprefix = prefixes[uidx - 1]
        else:
            if value < 10240:
                return value, '{0}{1}'.format(valprefix, unit)
            value = int(round(value / 1024.0))
            valprefix = prefixes[uidx + 1]
    return value, '{0}{1}'.format(valprefix, unit)
