Python中decimal.Decimal類型和float類型的比較
Python decimal.Decimal和float類型比較
1,class 'decimal.Decimal' 轉(zhuǎn)換成float類型
例如:
四色五入,保留兩位小數(shù) 傳入?yún)?shù)可以為字符串也可以為整數(shù)
num01 = Decimal(2.333).quantize(Decimal('0.00'))
此時(shí) num01 類型為 'decimal.Decimal' ,需要轉(zhuǎn)化成float類型在與浮點(diǎn)型作比較;
num01 = float(num01)
2,class 'decimal.Decimal' 轉(zhuǎn)換成strt類型
num01 = str(Decimal(2.333).quantize(Decimal('0.00'))) num02 = str(float(2.33))
最后再做比較;
decimal報(bào)錯(cuò):decimal.InvalidOperation: [<class ‘decimal.ConversionSyntax‘>]
from decimal import * sum_vol=0 sum_rev=0 sum_gp=0 list2=['5\n457.5\n363.4\n4\n1\n0.5\n-5,847.9', '900\n247.1\n-22.3\n800\n100\n24.7\n26.9'] for xx in list2[:]: x = xx.split('\n') x[0] = x[0].replace(',', '') x[3] = x[3].replace(',', '') x[4] = x[4].replace(',', '') # x[6] = x[6].replace(',', '') sum_vol += Decimal(x[-3]) sum_rev += Decimal(x[-2]) sum_gp += Decimal(x[-1]) print(sum_vol) print(sum_rev) print(sum_gp)
運(yùn)行結(jié)果報(bào)錯(cuò):
分析
有3個(gè)求和,只有sum_gp報(bào)錯(cuò)了,原來是有個(gè)逗號
只需加上x[6] = x[6].replace(’,’, ‘’),就不會報(bào)錯(cuò)了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)智能貪吃蛇游戲的示例代碼
我想大家都玩過諾基亞上面的貪吃蛇吧,這篇文章將帶你一步步用python語言實(shí)現(xiàn)一個(gè)snake小游戲,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-07-07基于python的docx模塊處理word和WPS的docx格式文件方式
今天小編就為大家分享一篇基于python的docx模塊處理word和WPS的docx格式文件方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02淺談Python實(shí)現(xiàn)opencv之圖片色素的數(shù)值運(yùn)算和邏輯運(yùn)算
今天帶大家來學(xué)習(xí)的是關(guān)于Python的相關(guān)知識,文章圍繞著圖片色素的數(shù)值運(yùn)算和邏輯運(yùn)算展開,文中有非常詳細(xì)的的介紹及代碼示例,需要的朋友可以參考下2021-06-06Python教程之生產(chǎn)者消費(fèi)者模式解析
在并發(fā)編程中使用生產(chǎn)者和消費(fèi)者模式能夠解決大不多的并發(fā)問題。該模式通過平衡生產(chǎn)線程和消費(fèi)線程的工作能力來提高程序的整體處理數(shù)據(jù)的速度2021-09-09