Функция math.trunc()
даст вам целую часть:
>>> import math
>>> math.trunc(1.01010101)
1
, которую вы можете затем вычесть, однако вы, скорее всего, столкнетесь с проблемами с плавающей запятой ieee, которые могут быть неожиданными:
>>> a = 1.01010101
>>> a -= math.trunc(a)
>>> a
0.010101010000000077
>>> b = a * 10**8
>>> b
1010101.0000000077
во многих случаях вы можете просто усечь последнее число, чтобы получить ожидаемое целое число, но я бы посоветовал прочитать https://docs.python.org/2/tutorial/floatingpoint.html, чтобы получить более глубокое понимание.
Python имеет decimal
модуль, который более точно обрабатывает арифметику base-10:
import decimal.Decimal as D
>>> a = D('1.01010101')
>>> a
Decimal('1.01010101')
>>> math.trunc(a)
1
>>> a -= math.trunc(a)
>>> a
Decimal('0.01010101')
>>> a * 10**8
Decimal('1010101.00000000')
>>> b = int(a * 10**8)
>>> b
1010101
в этой версии в строке b = ...
не будет артефактов с плавающей запятой.