所以,如果我跑:
a = b / c
并获得结果1.2234
我如何将它分开以便我拥有:
a = 1
b = 0.2234
答案 0 :(得分:19)
>>> 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
答案 1 :(得分:11)
a,b = divmod(a, 1)
答案 2 :(得分:5)
尝试:
a, b = int(a), a - int(a)
奖金:也适用于负数。 -1.7
分为-1
和-0.7
,而不是-2
和0.3
。
编辑如果保证a
是非负面的,那么gnibbler的解决方案就是可行的方法。
编辑2 恕我直言,Odomontois的解决方案击败了我的和gnibbler's。
答案 3 :(得分:1)
b = a % 1
a = int(a)
或其他什么
答案 4 :(得分:0)
int(a)/b == 1
(a/b)%1 == 0.2234
答案 5 :(得分:0)
x = 1.2234
y = str(x/100).split('.')
a = y[0]
b = y[1]
然后结果是......
a = 1
b = 2234
答案 6 :(得分:0)
您还可以使用numpy函数np.modf:
fractional_part, int_part = np.modf([0,1.2234,3.5])
当然,如果您可以处理向量而不是一个一个地处理单个数字,这将非常有效。
答案 7 :(得分:0)
您可以通过不同的方式进行操作: 1.具有内置功能:
def fractional_part(numerator, denominator):
if denominator != 0:
return math.modf(numerator/denominator)
return 0
2。没有内置功能:
def fractional_part(numerator, denominator):
if denominator != 0:
a = str(numerator/denominator).split(".")[0]
b = "0." + str(numerator/denominator).split(".")[1]
return (float(a),float(b))
return 0