import typing


def lerp(
    start: typing.Union[int, float],
    end: typing.Union[int, float],
    weight: float
) -> float:
    """Return a weighted distance between two numbers.

    :param start: The start number.
    :param end: The end number.
    :param weight: The distance between the start number and end number.  Must be a float between [0.0, 1.0].
    :return: The interpolated number.
    """
    return (end - start) * weight + start