在python中,如何将数字四舍五入到最接近的0.5。
例如
100.4将四舍五入到100.5
100.6将四舍五入至100.5
100.9将四舍五入到101
Python内置的round
函数可用于将数字四舍五入到特定的小数位数。通过将数字乘以2,四舍五入到小数点后再除以,我们可以将一个数字四舍五进到最接近的0.5:
num = 3.46
result = round(num * 2) / 2
print(result) # 3.5
作为一个函数,这是:
def to_nearest_half(num):
return round(num * 2) / 2
该函数也可以推广到任何十进制:
def to_nearest(num, decimal):
return round(num / decimal) * decimal
那将是
def roundhalf(x: float):
return round(x*2)/2
可使用进行测试
for x in [100.4, 100.6, 100.9]:
print(roundup(x))
输出确实是
100.5
100.5
101.0
传统的方法是乘以一个允许分数舍入目标为整数的因子,进行舍入,然后将该因子除回来。在这种情况下,因子是2,因为0.5乘以2是1,一个整数。
x = 100.4
y = round(x * 2) / 2
要始终使用一个小数位打印,可以使用str.format()
。
'{:.1f}'.format(round(x * 2) / 2)
最简单的方法是:
def myRound(x):
if 0 <= (x % int(x)) <= 0.25 or 0.75 <= (x % int(x)) <= 0.99:
return round(x)
else:
return int(x) + 0.5
说明:
- 您只关心小数部分,因此首先需要检查它是否足够接近整数-如果是,请使用标准的四舍五入方法
- 如果不是-那么它最接近0.5,所以将其四舍五入(int(x(将截断小数部分(,然后加0.5
我假设你希望低于.25的值四舍五入为0,高于.75的值四入为1,介于这两者之间的值四取五入为.5您可以修改边界。