from typing import Optional


def _validate_and_convert_float(value: float) -> Optional[float]:
    """
    Validate that a value is a float, or a number that can be converted to a float.
    If the value is valid, this method will return the value as float. Otherwise, this
    method returns None

    :param value: Value to validate and convert
    :return: Value as float if value is valid, None otherwise
    """
    valid = True
    if not isinstance(value, (float, int)):
        valid = False
    if isinstance(value, bool):
        valid = False
    if valid:
        return float(value)
    return None