```
def digit_sum(n):
while len(str(n))>1:
total=0
i=n/10-n//10
total=total+i*10
n=n//10
return total
print digit_sum(123)
it just keep return 0 , which part is incorrect?
thank you so much !
```

# Digit_sum, how to use floor divider

Hello @zoezhang1992foxmail,

Your code isn't working because you are resetting the total variable for every loop of the while loop. Try declaring this variable outside of it, that should fix one of the problems.

Also, floor division, also called integer division, returns the integer of the division if the result is a floating point number. For instance...

```
5.0/2.0 = 2.5
5.0//2.0 = 2.0
```

But, in your case, Python2.7 division is automatically floor division because it doesn't return a floating point number unless you specifically instruct it to by using the `float()`

function. So, you are basically adding 0 to total repeatedly, and that is why your code isn't working properly.

In order to fix this, I would recommend using a for loop that iterates through the string values of the argument number and adds their `int()`

versions into a variable, which is then returned.

I hope this clears out your doubts.

thank you so much

the explanation is very clear.

i have changed my code to

def digit_sum(n):

total=0

while len(str(n))>1:

i=n/10.0-n//10

total=total+i*10

n=n//10

print total

else:

total=total+n

return total

it seems work well

You're welcome, @zoezhang1992foxmail. If you feel my answer is satisfactory, then put it as the solution so that others know that the topic is closed. The solution is a little tick mark in a box. Keep coding hard !