如何在Python中将数字取整到一半?

时间:2019-02-02 12:27:45

标签: python python-3.x

我想使一个程序,将上舍入浮点数等:18.33333 到18.5。

我试图math.ceil但它不会工作像我的预期。

import math

number1 = 18.3333

print(math.ceil(float(number1)))

我希望它是18.5。但结果是19。

2 个答案:

答案 0 :(得分:0)

您可以加倍,四舍五入然后切成两半。可以解决,但是可以完成工作:

import math

number1 = 18.3333


round(number1*2)/2

或使用功能

def mod_round(x, base=.5):
    return (base * round(float(x)/base))

mod_round(number1. base=.5)

答案 1 :(得分:0)

您可以将x / 2舍入,然后乘以2:

def round_to_half(x):
    return round(x*2)/2

for test in [0.12, 0.26, 13.78, 14.27]:
    print(test, round_to_half(test))

输出:

0.12 0.0
0.26 0.5
13.78 14.0
14.27 14.5