所以我遇到麻烦四舍五入,这是我的代码:
foo = float(0.21)
bar = float(0.871929)
foobar = foo * bar
Rfoobar = round(foobar,2)
这给了我:
foobar = 0.1831
Rfoobar = 0.18
但我希望Rfoobar成为0.19
,
我如何实现它总是在有余数时将数字向上舍入?
我读到了math.ceiling
,但在我的情况下似乎没有做到这一点。
非常感谢任何帮助。
答案 0 :(得分:2)
只需在调用ceil
之前和之后移动小数点:
from math import ceil
Rfoobar = ceil(foobar * 100) / 100
如果小数位数不同,您可以执行以下操作:
Rfoobar = ceil(foobar * 10 ** digits) / 10 ** digits
答案 1 :(得分:2)
您还可以在舍入前添加0.005:
>>> for foobar in 0.1831, 0.1801, 0.1800:
print(foobar, '->', round(foobar + 0.005, 2))
0.1831 -> 0.19
0.1801 -> 0.19
0.18 -> 0.18