把一个小数转化成分数

 

def fraction( n ):

    '''

    Convert fractional part of number to a decimal.

    Only converts the _fractional_ component, ignoring the whole number.

    '''

    n_str = str( n )

    print(len(n_str),n_str.find( '.' ))

    decimal_part = len(n_str)-n_str.find( '.' )

    # 1. Multiply by ten repeatedly (to make all of decimal greater than zero).

    numer = n * 10 ** decimal_part

    denom = 10 ** decimal_part

    s=[]

    for z in factor(numer):

        for y in factor(denom):

            if z==y:

                s.append(z)

    l=len(s)-1

    nu=numer/s[l]

    de=denom/s[l]

    return nu,de

    # 2. Find factors.

def factor(n):

    i=0

    s=[]

    while i<n:

        i=i+1

        if n%i==0:

            s.append(i)

    return s

print(fraction(0.375))


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值