Есть число:
115792089237316195423570985008687907852837564279074904382605163141518161494336
Его необходимо разделить на 200 в одной функции, а потом восстановить в другой. В случае если деление будет с остатком, его необходимо просто округлить до целых числел.
Пробуем разделить:
int(115792089237316195423570985008687907852837564279074904382605163141518161494336 / 200)
#Результат
578960446186580989169890256985866605831065615886922339113810373410511912960
В другой функции пробуем восстановить число:
int(578960446186580989169890256985866605831065615886922339113810373410511912960 * 200)
#Результат
115792089237316197833978051397173321166213123177384467822762074682102382592000
Итого у нас получилось 2 разных числа. Оно понятно, потому что мы округляли через int() в меньшую сторону.
Но вот вопрос:
11579208923731619
5423570985008687907852837564279074904382605163141518161494336 - первое исходное число
11579208923731619
7833978051397173321166213123177384467822762074682102382592000 - второе число, которое мы округлил в меньшую строну
Обратите внимание на числа, которые я выделил жирным в предыдущих двух строках.
Почему второе стало больше, да тем более в таком объеме?