Because of floating point math rounding errors, this may not trigger when we actually need it.

Possible solutions:
- Choose an arbitrarily small number and compare against that:
e.g.:
```
if dr < 0.000001:
    return 0.0
```
- Or just always call `float()` on the return value, because I believe this is ensuring that return type is a `float` and not an `int`