# How to get a random number between a float range?

PythonRandomFloating Point## Python Problem Overview

`randrange(start, stop)`

only takes integer arguments. So how would I get a random number between two float values?

## Python Solutions

## Solution 1 - Python

Use random.uniform(a, b):

```
>>> random.uniform(1.5, 1.9)
1.8733202628557872
```

## Solution 2 - Python

if you want generate a random float with N digits to the right of point, you can make this :

```
round(random.uniform(1,2), N)
```

the second argument is the number of decimals.

## Solution 3 - Python

`random.uniform(a, b)`

appears to be what your looking for. From the docs:

> Return a random floating point number N such that a <= N <= b for a <= b and b <= N <= a for b < a.

See here.

## Solution 4 - Python

From my experience dealing with python, I can only say that the random function can help in generating random float numbers. Take the example below;

```
import random
# Random float number between range 15.5 to 80.5
print(random.uniform(15.5, 80.5))
# between 10 and 100
print(random.uniform(10, 100))
The random.uniform() function returns a random floating-point number between a given range in Python
```

The two sets of code generates random float numbers. You can try experimenting with it to give you what you want.

## Solution 5 - Python

Most commonly, you'd use:

```
import random
random.uniform(a, b) # range [a, b) or [a, b] depending on floating-point rounding
```

Python provides other distributions if you need.

If you have `numpy`

imported already, you can used its equivalent:

```
import numpy as np
np.random.uniform(a, b) # range [a, b)
```

Again, if you need another distribution, `numpy`

provides the same distributions as python, as well as many additional ones.