The following program runs into an error because when I divide the large integer by 10 and truncate it, Python does weird math and returns a different number.
# Program to add the digits in an integer
# eg. 463728 would equal 30 ( 4+6+3+7+2+8 )
the_sum = 2**1000
running_tot = 0
sum_length = len(str(the_sum)) # to calculate the length of the integer
i = 0 #initialize iterator
while i < sum_length:
    remainder = the_sum % 10     # Find out the last no. in int.
    running_tot += remainder     # adds the last no. to running total
    the_sum = int(the_sum / 10)  # truncates the last no. for original number
    i += 1                       # increment iterator 
 
print(running_tot)
I would like to know why Python does this?
 
    