先来个灵魂三问:
print(round(0.5))
print(round(1.5))
print(round(2.5))
一般人肯定以为输出1, 2, 3了,实际跑出来,却是0, 2, 2
有些同学马上说,可以利用格式化字符串呀:
print("%.0f" % 0.5)
print("%.0f" % 1.5)
print("%.0f" % 2.5)
然并卵,仍然是0, 2, 2 (至于为什么是这个结果,可以谷哥下,大概来说就是为了公平)
这就很令人抓狂了,要知道,你四舍五入是一个数字,我们码农四舍五入差的可是一个亿啊!于是,高端码农站出来了,说:这种情况就得使用decimal!
于是利用decimal来试试:
import decimal
print(decimal.Decimal("0.5").quantize(decimal.Decimal("0")))
print(decimal.Decimal("1.5").quantize(decimal.Decimal("0")))
print(decimal.Decimal("2.5").quantize(decimal.Decimal("0")))
心想如此高端大气的代码,那肯定是返回小学老师教的结果了,结果