from typing import List


def bridge_span(unformat_span: str) -> List[float]:
    """Takes a string containing the unformatted span data for a bridge and returns
    a list of floats which correspond to the spans of the bridge
    
    >>> bridge_span('Total=64  (1)=12;(2)=19;(3)=21;(4)=12;')
    >>> [12.0, 19.0, 21.0, 12.0]
    """
    lst_spans = []
    indices = []
    i = 6
    while len(indices) < unformat_span.count('=') - 1:
        j = unformat_span.find('=', i)
        indices.append(unformat_span[unformat_span.find('=', j) + 1
                                     :unformat_span.find(';', j)])
        i = j + 1
    for index in indices:
        lst_spans.append(float(index))
    return lst_spans