8.833333333339
(或8.833333333333334
的结果106.00/12
)正确舍入为小数点后两位8.83
。数学上,这听起来像您想要的是天花板功能。Pythonmath
模块中的一个名为ceil
:
import math
v = 8.8333333333333339
print(math.ceil(v*100)/100) # -> 8.84
地板和天花板功能通常分别将实数映射到最大的前一个或最小的后整数,该整数具有十进制小数位-因此将它们用于2个小数位,首先将数字乘以10 2(或100)即可将小数位数移位点,然后除以它以进行补偿。
如果math
由于某种原因不想使用该模块,则可以使用我刚刚编写的这个(经过最低测试的)实现:
def ceiling(x):
n = int(x)
return n if n-1 < x <= n else n+1