python 小數錯誤處理總結

2021-09-10 15:08:40 字數 948 閱讀 1603

原**版本:

n1,n2=raw_input().split(』.』),raw_input().split(』.』)

res=str(reduce(lambda a,b:10a+b,map(lambda x:ord(x[0])+ord(x[1])-2ord(『0』),list(z_l(n1[-1][::-1],n2[-1][::-1],fillvalue=『0』))[::-1])))

c=1 if len(res)>max(len(n1[-1]),len(n2[-1])) else 0

print 『{}.{}』.format(reduce(lambda a,b:10a+b,map(lambda x:ord(x[0])+ord(x[1])-2ord(『0』),list(z_l(n1[0][::-1],n2[0][::-1],fillvalue=『0』))[::-1]))+c,res[1:] if c else res)

用例:1405875601107347940205.2758

681951321.671225249572911

對應輸出為:1405875601108029891526.947025249572911

我的輸出為:1405875601108029891526. 671225249575669

錯誤原因:小數相加應在後面加0,而不是在前面加0,小數部分不逆置即可

res=str(reduce(lambda a,b:10a+b,map(lambda x:ord(x[0])+ord(x[1])-2ord(『0』),list(z_l(n1[-1][::-1],n2[-1][::-1],fillvalue=『0』))[::-1])))

改為:res=str(reduce(lambda a,b:10a+b,map(lambda x:ord(x[0])+ord(x[1])-2ord(『0』),z_l(n1[-1],n2[-1][::-1],fillvalue=『0』))))

就行了

python小數錯誤 python 小數點問題

我想生成一組小數,大小為從0到1,間隔為0.2,即 0,0.2,0.4,0.6,0.8,1 1.while迴圈生成 a list i 0 while i 1 i 0.2 print a list 列印結果為 0,0.2,0.4,0.6000000000000001,0.8,1.0 奇怪,為什麼會有0...

PHP筆記4 常用函式 錯誤處理

錯誤處理 print 類似於echo輸出提供的內容,本質是一種結構 不是函式 返回1,可以不需要使用括號 因為是結構不是函式 print r 類似於var dump,但是比var dump簡單,不會輸出資料的型別,只會輸出值 陣列列印使用比較多 echo print hello 1 print he...

Python 錯誤處理

當我們認為某些 可能會出錯時,就可以用try來執行這段 如果執行出錯,則後續 不會繼續執行,而是直接跳轉至錯誤處理 即except語句塊,執行完except後,如果有finally語句塊,則執行finally語句塊,至此,執行完畢。例 a b traceback most recent call l...