Partial solutionWe 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$.
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$.
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.