errrr... what's the difference? I mean obviously I see that those numbers are different... but I don't see why some are desirable and some are not. Nor do I see how you distinguish between which are desirable.
What do you consider a number you want vs. a number you don't?
When I look at your examples, 0.125 is 1/8, 0.8989 is probably 89/99. Are you looking for random numbers which can be expressed as fractions? If so, find random denominators, and random numerators.
1 2 3
int denom = rand()%DENOM_LIM+1;
int numer = rand()%denom;
double d = (double)numer / (double)denom;