由于python3里使用了更精确的舍入方式,导致使用round和%.numf 四舍五入 有各种意料之外的情况出现,以下分别是用数学方式,用字符串+If,引入第三方模块,
以下是精度在小数点后两位
数学方式(比较适用的方法,要求少)
def round_num(a):
s=100
return '%.2f' % (int(float(a)*s+0.5)/s)
print(round_num(a)
字符串(对输入字符串取的长度有要求)
def round_num(a):
if int(a[5]) > 4:
c = int(a[4])
c += 1
a = a[:4] + str(c)
return a
else:
a = '%.2f' % float(a)
return a
第三方模块(占用内存大)
from decimal import Decimal, ROUND_HALF_UP
def Deci_num(a):
return str((Decimal(a).quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)))
标签:四舍五入,%.,return,python,int,num,三种,round
来源: https://blog.csdn.net/weixin_44716687/article/details/104915377