# deprecationwarning: object of type <class 'float'> cannot be safely interpreted as an integer.

814 views

## Problem :

I am facing following type error while trying to execute the Python program
deprecationwarning: object of type <class 'float'> cannot be safely interpreted as an integer.

## Solution :

Please note the range() can only work with integers but the dividing with  / operator will always results in a float value:

`e.g.`
```>>> 450 / 10
45.0
>>> range(450 / 10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'float' object cannot be interpreted as an integer```

So please make the value an integer again by following method:

`for i in range(int(c / 10)):`

or you can use the // floor division operator:

`for i in range(c // 10):`

## Solution:

### In:

``for i in range(c/10):``

### You're creating a float as a result - to fix this use the int division operator:

``for i in range(c // 10):``

### `range()` can only work with integers, but dividing with the `/` operator always results in a float value:

``````>>> 450 / 10
45.0
>>> range(450 / 10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'float' object cannot be interpreted as an integer``````

### Make the value an integer again:

``for i in range(int(c / 10)):``

### or use the `//` floor division operator:

``for i in range(c // 10):``

### As shown below, `range` only supports integers:

``````>>> range(15.0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: range() integer end argument expected, got float.
>>> range(15)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>>``````

However, `c/10` is a float because `/` always returns a float.

Before you put it in `range`, you need to make `c/10` an integer. This can be done by putting it in `int`:

``range(int(c/10))``

### or by using `//`, which returns an integer:

``range(c//10)``

## Related questions

34 views
Problem: I am a python newbee. I was trying some code : x = int(input("Input an Integer：")) res = [x] while x != 1: ---> for i in range(2, a): if x % i == 0: res.append(i) x = x / i break print(res) but this code shows some error ... did not compile. The error message is : TypeError: 'float' object cannot be interpreted as an integer Can any one tell me why am I getting this kind of error message?
1 vote