我正试图强制浮点数向上舍入到小数点后第二位。我知道这不是最好的做法,但这正是我正在努力的程序所需要的。例如:
100.00 = 100.00
100.001 = 100.01
100.009 = 100.01
我已经非常接近我需要的结果math.ceil和我在另一篇文章中读到的提示,但是我遇到了一个问题,如果输入数字已经完全在2位小数处结束,那么就会不必要地向上舍入。这是一个例子:
import math
taxpcnt = 1.12
roomsubtotal = 699.00
roomttl = math.ceil(taxpcnt * roomsubtotal * 100) / 100
print roomttl
我认为这将返回782.88,因为699 * 1.12正好是782.88,但它返回782.89。 Weirder如果我'打印taxpcnt * roomsubtotal',我得到782.88。如果我将代码更改为:
roomttl = math.ceil(782.88 * 100) / 100
我得到了正确的价值。但是有些原因,它们一起计算得不对。
有关如何正确获得我想要实现的目标的任何提示?
编辑:我想我已经修补了一个解决方案:
import math
taxpcnt = 1.12
roomsubtotal = 699.00
rate = "%.2f" % (taxpcnt * roomsubtotal * 100)
rate = float(rate)
roomttl = math.ceil(rate) / 100
不确定这是否是最佳方法,但至少它似乎有效。