Ответ 1
>>> from math import modf
>>> b,a = modf(1.2234)
>>> print ('a = %f and b = %f'%(a,b))
a = 1.000000 and b = 0.223400
>>> b,a = modf(-1.2234)
>>> print ('a = %f and b = %f'%(a,b))
a = -1.000000 and b = -0.223400
Итак, если я запустил:
a = b / c
и получить результат 1.2234
Как отделить его, чтобы у меня было:
a = 1
b = 0.2234
>>> from math import modf
>>> b,a = modf(1.2234)
>>> print ('a = %f and b = %f'%(a,b))
a = 1.000000 and b = 0.223400
>>> b,a = modf(-1.2234)
>>> print ('a = %f and b = %f'%(a,b))
a = -1.000000 and b = -0.223400
a,b = divmod(a, 1)
Try:
a, b = int(a), a - int(a)
Бонус: работает и для отрицательных чисел. -1.7
делится на -1
и -0.7
вместо -2
и 0.3
.
EDIT Если a
гарантированно будет неотрицательным, то решение gnibbler - это путь.
РЕДАКТИРОВАТЬ 2 ИМХО, решение Odomontois бьет как мои, так и гнибблеры.
b = a % 1
a = int(a)
или что-то
int(a)/b == 1
(a/b)%1 == 0.2234
x = 1.2234
y = str(x/100).split('.')
a = y[0]
b = y[1]
тогда результат...
a = 1
b = 2234