Make template comparison functions handle floats

I modified the template comparison functions to add `float` type handling.

Indeed when dealing with floats, the current functions treat them as `0`, making `ge` and `le` returning `true` no matter `a` and `b` values.