python小数点进位_python 四舍五入进位不准

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值