Python函数四舍五入到最接近的值



在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

说明:

  1. 您只关心小数部分,因此首先需要检查它是否足够接近整数-如果是,请使用标准的四舍五入方法
  2. 如果不是-那么它最接近0.5,所以将其四舍五入(int(x(将截断小数部分(,然后加0.5

我假设你希望低于.25的值四舍五入为0,高于.75的值四入为1,介于这两者之间的值四取五入为.5您可以修改边界。

最新更新