I guess I took a scenic route to the solution! First,
$$f(1) = f(1\cdot 1) = f(\lfloor 1\rfloor \cdot 1) = f(1) \lfloor f(1) \rfloor,$$
so either
$f(1) = 0$ or $\lfloor f(1) \rfloor = 1.$
If
$f(1) =0$
then for all $y\in\mathbb{R}$,
$$f(y) = f(1\cdot y) = f(\lfloor 1\rfloor y) = f(1) \lfloor f(y)\rfloor = 0,$$
so
$f(y) = 0$ for all $y$.
So from now on assume instead that
$\lfloor f(1)\rfloor = 1$. In particular, $f(1)\neq 0$.
Let
$n\in\mathbb{Z}$ and $\delta\in [0,1)$. Then $$f(n) = f( \lfloor n+\delta \rfloor \cdot 1) = f(n+\delta) \lfloor f(1) \rfloor = f(n+\delta), \phantom{NN} (***)$$
so
$f$ is constant on the half-open interval $[n,n+1)$, for each $n\in \mathbb{Z}$. Thus $f$ is determined by its values on the integers.
Now let
$q\in\mathbb{Z}$, and suppose $q\neq 0$. Then $$f(1) = f\left(q\cdot \frac{1}{q}\right) = f\left(\lfloor q\rfloor \cdot \frac{1}{q}\right) = f(q) \cdot \left\lfloor f\left(\frac{1}{q}\right)\right\rfloor.$$
Notice that
$f(q)\neq 0$ and $\lfloor f(1/q)\rfloor \neq 0$, since our assumption from earlier guarantees that $f(1)\neq 0$.
Now,
if $q> 1$ then $0<1/q<1$, so $$f(1/q) = f(0+1/q) = f(0),$$ by equation $(***)$. In particular, $\lfloor f(0)\rfloor = \lfloor f(1/2) \rfloor \neq 0$, since we said $\lfloor f(1/q)\rfloor \neq 0$ for all $q\in\mathbb{Z}\setminus \{ 0\}$.
Similarly,
if $q<-1$ then $-1<1/q<0$, so $f(1/q) = f(-1)$; hence $\lfloor f(-1)\rfloor \neq 0$.
So,
for $q\in \mathbb{Z}\setminus \{-1,0,1\}$, we have $$f(q)=\begin{cases}f(1) / \lfloor f(0)\rfloor & \textrm{ if } q > 1\\f(1) / \lfloor f(-1)\rfloor & \textrm{ if } q < 1.\end{cases}$$ Thus $f$ is determined by its values at $0$, $1$, and $-1$.
Recall that
we assumed $\lfloor f(1)\rfloor = 1$, so $f(1) = 1+\epsilon$ for some $\epsilon \in [0,1)$. Similarly, let's write $f(0) = m+\gamma$, and $f(-1) = n+\delta$, where $m,n\in\mathbb{Z}$ and $\gamma,\delta\in [0,1)$. By the way, we already found that $m = \lfloor f(0) \rfloor \neq 0$, and similarly $n\neq 0$.
Now
$$m+\gamma = f(0) = f( 0 (-1)) = (m+\gamma)(n),$$ so $(m+\gamma)(n-1) = 0$. We can't have $m+\gamma = 0$ because we said $f(0) \neq 0$, so we conclude that $n=1$.
We're almost done.
$$m+\gamma = f\left( -1 \cdot 0\right) = (1 + \delta) (m) = m + m\delta,$$ so $\gamma = m\delta$. Similarly, $\gamma = m \epsilon$.
Finally
$m + \gamma = f(0\cdot 0) = (m+\gamma) (m)$, which (since $m+\gamma \neq 0$) implies $m=1$. Thus $m=n=1$, and $\gamma=\delta=\epsilon$.
Therefore
$f(1) = f(-1) = f(0) = 1 + \epsilon$. It now follows that $f(q) = 1+\epsilon$ for all $q\in \mathbb{Z}$, and indeed $f(x) = f(\lfloor x\rfloor) = 1+\epsilon$, for all $x\in \mathbb{R}$.
So all of the solutions must be
constant functions; either $f(x) = 0$, or $f(x) = 1+\epsilon$ for some fixed constant $\epsilon \in [0,1)$.
Conversely,
any of these functions certainly satisfies the functional equation, as is easy to check. $\Box$