We can easily check that the solutions are:
>!$f(x)=C$ where $C=0$ or $1\le C<2$

Firstly,
>!$x=0$ yields $f(0)\big(\lfloor f(y)\rfloor-1\big)=0$.
 
If
>!$f(0)\ne0$, $\lfloor f(y)\rfloor=1$. We sub $x=1$ in the original equation and have $f(y)=f(1)\lfloor f(y)\rfloor=f(1)$, which makes $f(x)=C$ for any constant $1\le C< 2$.

If 
>! $f(0)=0$, then put $x=k$ where $0\le k\le1$. Then we have $f(k)\lfloor f(y)\rfloor=0$.<br/>
>!<br/>
>!If for some possible values of $k$, $f(k)\ne0$, then we have $\lfloor f(y)\rfloor=0$ for all $y$, so we put $x=1$ in the original equation, which yields $f(y)=f(1)\lfloor f(y)\rfloor=0$, but this contradicts with the condition that there exist $0<k<1$ that $f(k)\ne0$.<br/>
>!<br/>
>!So for all $k$, $f(k)=0$. For all $y\in\mathbb{R}$, we can always choose an integer $n$, such that $0\le \frac yn<1$. So putting $(n,\frac yn)$ for $(x,y)$, we have $f(y)=f(\lfloor n\rfloor\cdot\frac yn)=f(n)\lfloor f(y)\rfloor=0$. 

____
Note: I know the question is IMO 2010 shortlist A1, and I have done it before. But I just need a while to recover my memories.