I have a similar problem. However this doesn't seem like a solution, because it only redistributes the possible random outputs so that they are spaced with regular intervals between low_number and high_number. There are still only RAND_MAX+1 different possibilities. What if I want the output to be ANY float?
Is there a function that does this? I've been trying to find for one several days without luck.
The problem is solvable in principle, but it isn't easy. Here's why.
Suppose you're trying to obtain a random number between 0.0 and 1.0, and you want the result to be uniformly distributed. That does not mean you want every possible floating-point number to appear equally likely, because the little tiny numbers close to 0, with large negative exponents, are much more closely spaced together than the bigger numbers near 1.
So if you want uniform distribution, and you also want every floating-point number to be possible as a result, you wind up with a whole bunch of tiny numbers that, because they're so close together, occur extremely rarely--but still have to be able to occur at all.
Figuring out how to do this reliably is far from easy, especially if your integer random-number generator isn't very good (as many of them aren't).
So before diving into this problem, you might want to think a bit about whether it's really what you want.