我想使一个程序,将上舍入浮点数等:18.33333 到18.5。
我试图math.ceil但它不会工作像我的预期。
import math
number1 = 18.3333
print(math.ceil(float(number1)))
我希望它是18.5。但结果是19。
答案 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