I was so grateful to find a solution to this that I ended up spending the rest of the evening rewriting the patch to accommodate a decimal point. maybe not very elegant, but here it is in case anyone else needs to stay in vanilla:
At the time I could see no way around it in 0.46-7.
Challenge accepted! I'm not saying that this is an elegant solution, but it will convert symbol-floats to real floats using only Vanilla objects. Things get confusing if you start feeding it regular symbols, though...