在python中,我如何用小数点分割数字

时间:2010-08-10 22:48:15

标签: python floating-point split decimal

所以,如果我跑:

a = b / c

并获得结果1.2234

我如何将它分开以便我拥有:

a = 1
b = 0.2234

8 个答案:

答案 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,而不是-20.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