round(),四舍六入五平分,无法满足要求,int( )只舍不进也不满足要求。下面使用 decimal 包实现严格四舍五入:
from decimal import Decimal
a = 4.5454545
# 保留整数
int(Decimal(str(a)).quantize(Decimal('0'), rounding='ROUND_HALF_UP')) # return 5
# 保留一位小数
float(Decimal(str(a)).quantize(Decimal('.0'), rounding='ROUND_HALF_UP')) # return 4.5
# 保留两位小数
float(Decimal(str(a)).quantize(Decimal('.00'), rounding='ROUND_HALF_UP')) # return 4.55
# 保留三位小数
float(Decimal(str(a)).quantize(Decimal('.000'), rounding='ROUND_HALF_UP')) # return 4.545
# 以此类推,保留六位小数
float(Decimal(str(a)).quantize(Decimal('.000000'), rounding='ROUND_HALF_UP')) # return 4.545455
负数也适用,代码是长了点,贵在可以直接用。

该博客介绍了如何使用Python的decimal模块进行精确的四舍五入操作,包括保留不同位数小数的方法,适合对精度有要求的数学计算或财务应用。
&spm=1001.2101.3001.5002&articleId=125153265&d=1&t=3&u=d7090e5857c94340b5c354a825196a60)
1万+

被折叠的 条评论
为什么被折叠?



