Python 2.7: 将浮点数向上舍入到下一个偶数
我想把一个小数向上取整到下一个偶数。
步骤:
1) 检查一个数字是奇数还是偶数
2) 如果是奇数,就向上取整到下一个偶数
我已经完成了第一步,写了一个函数来检查给定的数字是否是偶数:
def is_even(num):
if int(float(num) * 10) % 2 == 0:
return "True"
else:
return "False"
但是我在第二步上遇到困难……
有什么建议吗?
注意:所有的小数都是正数。
3 个回答
-1
import math
def round_to_ceil_even(f):
if (math.floor(f)%2 == 0):
return math.floor(f)
else:
return math.floor(f)+1
def round_to_ceil_even(f):
if (math.floor(f)%2 == 0):
return int(f)
else:
return int(f+1)
这段内容包含了一张图片,图片的链接是 这里。你可以点击这个链接查看图片。
2
a = 3.5654
b = 2.568
a = int(a) if ((int(a) % 2) == 0) else int(a) + 1
b = int(b) if ((int(b) % 2) == 0) else int(b) + 1
print a
print b
执行后,a的值
a = 4
执行后,b的值
b = 2
45
第一步其实不需要。只要把这个数除以2,然后向上取整,最后再乘以2就可以了:
import math
def round_up_to_even(f):
return math.ceil(f / 2.) * 2
示例:
>>> import math
>>> def round_up_to_even(f):
... return math.ceil(f / 2.) * 2
...
>>> round_up_to_even(1.25)
2
>>> round_up_to_even(3)
4
>>> round_up_to_even(2.25)
4