python 進製 python 四捨五入進製不准

2021-10-12 15:53:40 字數 1922 閱讀 6281

def getdecimal(data_value, demical_num=2, divided_num=100000000, isdivided=true, none_zero='0.00'):'''除以10000000,並處理小數點

data_value:需要進行判斷是否是-0.00的資料

:param data_value: 需要處理的小數

:param demical_num: 保留的小數字

:param divided_num: 被除數

:param isdivided: 是否除以 divided_num

:param none_zero: 非數字返回的值

:return:'''

defisnumber(num):'''判斷是否為數字

:param num:

:return:'''pattern= re.compile(r'^[-+]?[-0-9]\d*\.\d*|[-+]?\.?[0-9]\d*$')

result=pattern.match(str(num))ifresult:returntrueelse:returnfalsedefdealnum(data_value, demical_num, isdivided, divided_num):'''除以資料,處理科學計算法記錄的資料 如:1.2e-5

:param demical_num: 需要處理的小數

:param demical_num: 保留的小數字

:param isdivided: 是否除以 divided_num

:param divided_num: 被除數

:return:'''

importmath

n= 10

for i in range(demical_num + 1):

n= n * 10

if float(data_value) <0:ifisdivided:

data_temp= math.ceil(float(data_value) / divided_num *n)else:

data_temp= math.ceil(float(data_value) *n)else:ifisdivided:

data_temp= math.floor(float(data_value) / divided_num *n)else:

data_temp= math.floor(float(data_value) *n)

data_value= data_temp /ndefnewround(_float, _len):'''四捨五入保留小數字,如果想實現 0.2 顯示為 0.20,可使用 '%.2f' % num 實現

:param _float:

:param _len: 保留的小數字'''

if len(str(_float).split('.')[1]) <=_len:returnround(_float, _len)elif str(_float)[-1] == '5':return round(float(str(_float)[:-1] + '6'), _len)else:returnround(_float, _len)if notisnumber(str(data_value)):returnstr(none_zero)

decimal_digit= '%.' + str(demical_num) + 'f'data_value=dealnum(data_value, demical_num, isdivided, divided_num)#呼叫new_round()進行四捨五入

decimal_data = decimal_digit %newround(float(data_value), demical_num)

data= str(none_zero) if decimal_data == '-0.00' or decimal_data == '0.00' elsedecimal_datareturn data

python 進製 Python中的加法進製

我重寫了你的進製函式,使它工作,但實現完全不同。首先將數字串起來,這樣就可以遍歷它們。然後通過附加0使它們等長,並迴圈檢查每個數字的和 加上進製 是否超過9。如果是,增加計數器。希望這有助於 number1 int input number 1 number2 int input number 2 ...

python進製表示 python之進製轉換

python中二進位制是以0b開頭的 例如 0b11 則表示十進位制的3 8進製是以0開頭的 例如 011則表示十進位制的9 16進製制是以0x開頭的 例如 0x11則表示十進位制的17 全域性定義 base str x for x in range 10 chr x for x in range ...

python中的進製 python中的進製轉換

1.簡介 該篇部落格主要闡述如何將按16進製制儲存的32位浮點數字串轉換為十進位制數 資料示例如下 3f cc 00 00 1.59375 ff 7f ff ff 3.40282346639e 38 41 a4 c0 00 20.59375 注 這裡的位元組序按照大端法 小端法需要增加一行 已經表明...