#26226: python請問有沒有更好的寫法


andy.lin61013@gmail.com (我是你爸)

學校 : 國立清華大學
編號 : 158445
來源 : [118.166.40.151]
最後登入時間 :
2022-08-02 21:19:43
a248. 新手訓練 ~ 陣列應用 -- 新手訓練系列 ~ 2 | From: [114.45.206.212] | 發表日期 : 2021-07-25 14:58

內建計算機好像沒辦法完整印出指定的小數位數

例如10/3 20會印出0.333333333333333335之類的

所以以下我只能用精確小數未來處理(把數字調大)

不知道有沒有更好的做法

from decimal import *
try:
    while True:
        list1=[]
        a,b,c=input().split(' ')
        a=Decimal(a)
        b=Decimal(b)
        c=int(c)
        getcontext().prec=10000
        for i in str(a/b):
            list1.append(i)
        x=list1.index('.')
        list2=list1
        while True:
            if len(list1)-x-1>=c:
                list1[x+c+1:len(list1)+1]=[]
                print(''.join(list1))
                break
            elif len(list2)-x-1<c:
                list2.append('0'*(c-len(list2)+x+1))
                print(''.join(list2))
                break
except:
    pass
 
ZeroJudge Forum