四舍五入这个问题竟然出乎意料的不简单


出现问题

  • 失败一:使用"%.2f"
1
2
a = 1.335
print("%.2f" % a) # 输出1.33
  • 失败二:使用round()
1
2
a = 1.335
print(round(a, 2)) # 输出1.33
  • 失败三:使用Decimal()
1
2
3
from decimal import Decimal
a = 1.335
print(Decimal(a).quantize(Decimal('0.00'))) #输出1.33

解决问题:

  • a+0.001
1
2
a = 1.335
print(round(a + 0.001, 2)) # 输出 1.34

这种方法也有点问题,保留两位小数要加0.001,三位的时候就要加0.0001,不够灵活,暂时没有发现更好的方法,先记一下