expresión regular para un número decimal válido de 2 dígitos

Quiero tener una validación en php para el precio que puede ser 100 o 100.45. Los 2 decimales serán opcionales.

Ahora la validación debe permitir sólo dígitos.

Hasta ahora me las arreglé para lograrlo

if (!preg_match('/^[0-9]+(\.[0-9]{1,2})?/', "100"))
{
    echo "Invalid";
}
else
{
    echo "Valid";
}

pero el problema aquí es que se muestra válido incluso si ingreso 100a.00 o 100a o 100.a00

Por favor, ayúdeme a arreglarlo para que solo se admitan dígitos en formato 100 o 100.00