执行半取整

2024-05-17 02:38:52 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,有没有一种方法可以只在小数部分大于一半的情况下将数字向上取整?round和{}将执行以下操作:

round(X.5) => X+1
math.ceil(X.5) => X+1

但是,我希望:

^{pr2}$

怎么做?在

我有2.7.13pythonx64


Tags: 方法情况数字math小数ceilroundpr2
3条回答

我找到了jornsharpe建议使用context的答案 我就是这么用的:

from decimal import *
x =5.500000000000001   # it is the number wanted to round, however only takes 15 number after decimal for me
ctx= Context(prec=1, rounding=ROUND_HALF_DOWN)
y = ctx.create_decimal(x)  

但是,我不知道它是否能和所有人一起工作。 也许还有更好的说法。在

math.ceil(x-0.5)

地图:

^{pr2}$

你可以这样做:

round(X - 0.00000000001)

您需要决定有多少个小数位是合适的,要记住浮动并不精确,因此例如100000000000000000.5不能被表示。在

相关问题 更多 >