I created my possible ms and bs like this:

`possible_ms = [num / 10 for num in range(-100, 101, 1)]`

and get 0.4 1.6 5.0 as best solutions.

In the Solution they calculate the datapoints like this:

`possible_ms = [m * 0.1 for m in range(-100, 101)]`

and get 0.30000000000000004 1.7000000000000002 4.999999999999999

Everything else is the same. Can please sb. explain where the the difference comes from?

My whole code:

```
def get_y(m, b, x):
return m*x + b
def calculate_error(m, b, point):
x_point = point[0]
y_point = point[1]
return abs(y_point - get_y(m, b, x_point))
possible_ms = [num / 10 for num in range(-100, 101, 1)]
possible_bs = [num / 10 for num in range(-200, 201, 1)]
datapoints = [(1, 2), (2, 0), (3, 4), (4, 4), (5, 3)]
smallest_error = float('inf')
best_m = 0
best_b = 0
for m in possible_ms:
for b in possible_bs:
error = calculate_all_error(m, b, datapoints)
if error < smallest_error:
best_m = m
best_b = b
smallest_error = error
print(best_m, best_b, smallest_error)
```