Let's start with the formalism:
Let $W$ be the total weight of our bag, $1,...,n$ be our elements, $w_1,...,w_n$ their corresponding weights, and $v_1,...,v_n$ their corresponding values.
As is known, the knapsack problem for integer weights can be solved by dynamic programming (or equivalently, using recursion + memoization), with time complexity of $\mathcal O(nW)$, where $W$ is the total weight our bag can hold, and $n$ is the number of items.
However, for real numbered weights, the algorithm fails (just imagine a billion items with weight $<1$, and $W=1$). We probably can round them in a clever way and then scale them up to be integers again, but that'd blow the size of the problem up in an inacceptable way.
Another approach would be to use recursion instead of dynamic programming, because the idea behind the algorithm still works out - either the $n$'th item is in the optimal solution, or not.
However, even with memoization, we can easily choose our weights in a way so that all sums $$\sum_{ \begin{align} i&\in M\\ M&\subseteq \{1,..,n\} \end{align}} w_i$$
are distinct, leaving us with $2^n$ weight-sums to memoize.
Is there any optimal algorithm that manages to keep the time complexity pseudopolynomial?