Community Tip - If community subscription notifications are filling up your inbox you can set up a daily digest and get all your notifications in a single email. X
Writing f(x):=... makes x an arbitrary variable - more precisely: the formal argument of the function. That way it has nothing to do with the variable x you defined earlier. So the attempt of the numerical evaluation therefore had to fail.
If you write f(x)= after defining the function, that x is the current argument of the function and for numerical evaluation it has to be either a constant value or a variable which had assigned a value before.