Simple question: `rand()`

generally returns a random number rarely in the range (0,1E-1) and I am interested in a range of random numbers between (0,1E-2).

I was wondering if anyone could verify that a solution like

```
rand() * (10.)^(rand(-16:0,1)[1])
```

would do generate fair random numbers in this range. Or maybe there is a more elegant (or built-in) solution?